Ниже записана программа. получив на вход число , эта программа печатает два числа, l и m .укажите наибольшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 0. var x, l, m: integer; begin readln(x); l: =0; m: =0; while x > 0 do begin l: = l + 1; if x mod 2 = 0 then m: = m + x mod 10; x: = x div 10; end; writeln(l); write(m); end

momot06 momot06    1   02.09.2019 02:50    1

Ответы
байгинат1 байгинат1  26.08.2020 13:29
Оператор div отрезает последнюю цифру числа, а mod считает остаток от деления на 2. Если он равен нулю, то выполняется действие M:= M + x mod 10.
Сначала выводится переменная L, в ней содержится счетчик, который считает, сколько раз оператор div отрежет цифру. Отсюда следует, что число должно быть трехзначным. В нашем случае ответом будет число 999, потому что div отрежет последнюю цифру три раза, а условие if x mod 2 = 0 then не будет выполнятся, потому что  остаток от деления на 2 числа 999 не равен нулю, программа выведет 0.
ответ: 999
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика