Program Number; var x: integer; { введенное число } n: byte := 0; { количество цифр в числе } i, j: byte; { счетчики } xi: array[1..5] of integer;{массив цифр, из которых состоит число} begin { Ввод исходного числа } readln(x); writeln; x := abs(x); // рассматриваем модуль числа { Разбиение числа на цифры } while (x > 0) do begin n := n + 1; // увеличиваем количество цифр xi[n] := x mod 10; // вычисляем цифру (остаток от деления на 10) if xi[n] = 8 then // если встретилась 8, begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; x := x div 10; // изменяем число (целое от деления на 10) end; { Поиск цифр, встречающихся больше одного раза} for i := 1 to n - 1 do for j := i + 1 to n do if xi[i] = xi[j] then // если числа begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; { Число не явлется "бесконечным" } writeln('нет');end.
Более подробно: 20:02 - если не учитывать, что в часе 60 минут, то предыдущее "счастливое" время - 19:91, но это не подходит, т.к. часы не могут показывать столько, дальше аналогично: 18:81 - не подходит; 17:71 - не подходит; 16:61 - не подходит; 15:51 - подходит, значит, это - предыдущее "счастливое" время. Чтобы найти, сколько времени с 15:51 до 20:02, то есть найти, насколько 20:02 больше, чем 15:51, нужно из большего отнять меньшее: 20:02-15:51=4:11, то есть 4 часа 11 минут. ответ: 4 ч 11 мин.
var x: integer; { введенное число } n: byte := 0; { количество цифр в числе } i, j: byte; { счетчики } xi: array[1..5] of integer;{массив цифр, из которых состоит число}
begin { Ввод исходного числа } readln(x); writeln; x := abs(x); // рассматриваем модуль числа { Разбиение числа на цифры } while (x > 0) do begin n := n + 1; // увеличиваем количество цифр xi[n] := x mod 10; // вычисляем цифру (остаток от деления на 10) if xi[n] = 8 then // если встретилась 8, begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; x := x div 10; // изменяем число (целое от деления на 10) end; { Поиск цифр, встречающихся больше одного раза} for i := 1 to n - 1 do for j := i + 1 to n do if xi[i] = xi[j] then // если числа begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; { Число не явлется "бесконечным" } writeln('нет');end.
ответ: 4 ч 11 мин.
Более подробно: 20:02 - если не учитывать, что в часе 60 минут, то предыдущее "счастливое" время - 19:91, но это не подходит, т.к. часы не могут показывать столько, дальше аналогично:
18:81 - не подходит;
17:71 - не подходит;
16:61 - не подходит;
15:51 - подходит, значит, это - предыдущее "счастливое" время.
Чтобы найти, сколько времени с 15:51 до 20:02, то есть найти, насколько 20:02 больше, чем 15:51, нужно из большего отнять меньшее: 20:02-15:51=4:11, то есть 4 часа 11 минут.
ответ: 4 ч 11 мин.