Просмотр задания
Укажите наибольшее из таких чисел х, при вводе кото-рых алгоритм печатает сначала 2, а потом 8.

var x, L, M: integer;
begin
readln(x);
L := 0; M := 9;
while x > 0 do
begin
L := L + 1;
if M > (x mod 10) then
M := x mod 10;
x := x div 10;
end;
writeln(L); write(M};
end.
Гость
19 февраля 2016
Ответы (1)
Информатик БУ # 19 февраля 2016 в 21:13 0
Каждый повтор цикла происходит операция x:=x div 10, то есть у x убирается последний разряд.
При этом каждый повтор цикла L увеличивается на единицу, то есть L равна количеству разрядов в числе x.
L=2, значит число X - двузначно.

Условие
if M > (x mod 10) then
M := x mod 10;
проверяет, если разряд числа меньше M, значит M присваивается этот разряд. После выполнения цикла M будет принимать значение наименьшего разряда числа X.

То есть мы должны подобрать наибольшее двузначное число, наименьшим разрядом которого является 8.

Ответ: 98
Перевести число из в Результат: 510 = 1012