Другие языки программирования и технологии
144. С клавиатуры вводится шестизначный номер трамвайного билета. Определить, является ли билет счастливым.
144. С клавиатуры вводится шестизначный номер трамвайного билета. Определить, является ли билет счастливым. Паскаль. С комментариями пожалуйста!
var n: longint;
function s(x: integer): integer;
begin s := 0; while x > 0 do begin
s := s + x mod 10; x := x div 10 end end;
begin while true do begin readln(n);
if s(n mod 1000) = s(n div 1000)
then writeln('Счастливый') else
writeln('Не счастливый') end end.
Тут надо объяснить почему для трамвайного номера выбран тип longint. Потому что если, например, выбрать тип integer, то у меня во ФриПаскале шестизначный номер просто не введётся. Функция s(x) вычисляет сумму цифр неотрицательного целого числа и в программе работает дважды на каждом шаге проверочного цикла на "счастливость". Всё остальное более-менее понятно и без комментариев...
function s(x: integer): integer;
begin s := 0; while x > 0 do begin
s := s + x mod 10; x := x div 10 end end;
begin while true do begin readln(n);
if s(n mod 1000) = s(n div 1000)
then writeln('Счастливый') else
writeln('Не счастливый') end end.
Тут надо объяснить почему для трамвайного номера выбран тип longint. Потому что если, например, выбрать тип integer, то у меня во ФриПаскале шестизначный номер просто не введётся. Функция s(x) вычисляет сумму цифр неотрицательного целого числа и в программе работает дважды на каждом шаге проверочного цикла на "счастливость". Всё остальное более-менее понятно и без комментариев...
Николай Ласкаев
Спаисбо
вот прога, остальное - сам, сложи 3 первых и 3 последних цифры
program cifr; //цифры числа
uses crt;
var i,k,m,mn:Integer;
n:longint;
c:array[1..9] of integer;
begin
clrscr;
writeln(' Cifri chisla');
writeln('----------------------');
writeln;
write('Vvesti chislo ne bolee 9 cifr-->'); readln(n);
k:=0; //определение количества цифр
while n>0 do begin // и запись их в массив
k:=k+1;
c[k]:=n mod 10;
n:=n div 10;
end;
for i:=k downto 1 do
write(c[i]:3);
writeln;
writeln('konec zadachi');
readln;
end.
program cifr; //цифры числа
uses crt;
var i,k,m,mn:Integer;
n:longint;
c:array[1..9] of integer;
begin
clrscr;
writeln(' Cifri chisla');
writeln('----------------------');
writeln;
write('Vvesti chislo ne bolee 9 cifr-->'); readln(n);
k:=0; //определение количества цифр
while n>0 do begin // и запись их в массив
k:=k+1;
c[k]:=n mod 10;
n:=n div 10;
end;
for i:=k downto 1 do
write(c[i]:3);
writeln;
writeln('konec zadachi');
readln;
end.
Николай Ласкаев
Спасибо)
Кто-то знает, что такое "счастливый"?
Если после ввода номера билета тебя не взломали и всё остальное осталось на месте - слава Богу, всё пронесло!))))
Жрать его будешь
Похожие вопросы
- Какой шестизначный номер у СЕРОГО цвета??? где белый 999999 а черный 000000
- С клавиатуры вводятся числа, пока не будет введен ноль, вывести числа в обратно порядке. С++ Голову сломал !!!
- Помогите с задачей С++ Упростить обычную дробь(с клавиатуры вводится числитель и знаменатель)
- нужно решение с++. С клавиатуры вводится 13 целых чисел, найти позиции всех простых чисел.
- С клавиатуры вводится 4 числа. Вывести на экран сумму двух наименьших
- Объявление массива С++. С клавиатуры вводится число n, потом надо задать массив nxn. Как это сделать?
- С клавиатуры вводится целое число от 1 до 1000 обозначающую сумму в рублях. Программа должна печатать эту сумму прописью
- С клавиатуры вводится n – длина ступенчатого массива.
- Определить является ли кол-во положительных элементов массива числом чётных
- Дан прямоугольный целочисленный массив размером N*N. Определить является ли данный массив магическим квадратом, т.е. сум