Информатика
Раздел: Информатика / 1. Информация и информационные процессы / 1.6. Элементы теории алгоритмов / 1.6.3. Построение алгоритмов и практические вычисления
Рассмотрим цикл, число шагов которого зависит от изменения переменной x:
while x > 0 do begin
...
x:= x div 10;
end;
Т. к. оператор div оставляет только целую часть от деления, то при делении на 10 это равносильно отсечению последней цифры.
Из приведенного цикла видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется столько раз, сколько цифр в десятичной записи введенного числа, при этом число L столько же раз увеличивается на 1. Следовательно, конечное значение L совпадает с числом цифр в x. Для того, чтобы L стало L=3, x должно быть трёхзначным.
Теперь рассмотрим оператор изменения M:
if x mod 2 = 0 then
M:= M + x mod 10;
end;
Оператор mod оставляет только остаток от деления, при делении на 10 это последняя цифра x.
Чтобы значение M осталось нулевым, нужно, чтобы условие x mod 2 = 0 не выполнялось, либо чтобы выполнялось x mod 10 = 0. А значит, все цифры этого числа могут быть либо нечётными, либо первая цифра нечётная и остльные нули. Но мы ищем максимальое x, поэтому искомое число 999.
Ответ: 999.