Укажите наибольшее натуральное число, при вводе которого эта программа напечатает сначала 3, потом – 6. с объяснением var x, l, m: integer; begin readln(x); l: =0; m: =0; while x > 0 do begin l: =l + 1; if (x mod 8) < > 0 then m: = m + x mod 8; x: = x div 8; end; writeln(l); write(m); end.

элина20072 элина20072    2   24.09.2019 19:20    0

Ответы
ДИЛЯ2002111 ДИЛЯ2002111  08.10.2020 16:22
1) цикл проработает 3 раза, но деление на 8 произойдёт дважды
2) идём восходящим методом. чтобы число было наибольшим, то нужно помножить наибольший остаток при последней итерации цикла, следовательно остатки в цикле будут 6. 0, 0
теперь помножим 6 на 8 два раза
получим следующую цепочку 6->48->384, следовательно 384 наибольшее такое число.
ответ: 384
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика