Все
Математика
Алгебра
Геометрия
Литература
Русский язык
Истоки
Краеведение
Французский язык
Литературное чтение
Астрономия
Природоведение
Родной край
Немецкий язык
Технология
Физика
Английский язык
Обществознание
Химия
Биология
История
О`zbek tili
Окружающий мир
Естествознание
География
Украинский язык
Информатика
Украинская литература
Казахский язык
Физкультура и спорт
Экономика
Музыка
Право
Белорусский язык
МХК
Кубановедение
ОБЖ
Психология
Кыргыз тили
Другие предметы
Показать все предметы
Алайбек
05.10.2022, 01:05
Информатика
Укажите наибольшее натуральное число, при вводе которого эта программа напечатает сначала 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.
Знаешь ответ?

Чтобы оставить ответ, или зарегистрируйтесь.

Ответ или решение 1
Gladikova
1) цикл проработает 3 раза, но деление на 8 произойдёт дважды
2) идём восходящим методом. чтобы число было наибольшим, то нужно помножить наибольший остаток при последней итерации цикла, следовательно остатки в цикле будут 6. 0, 0
теперь помножим 6 на 8 два раза
получим следующую цепочку 6->48->384, следовательно 384 наибольшее такое число.
Ответ: 384