Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите набольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 24. var x, a, b : integer; begin readln(x); a := 0...

Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите набольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 24. var x, a, b : integer; begin readln(x); a := 0; b := 1; while x > 0 do begin a := a + 1; b := b * (x mod 8); x := x div 8; end; writeln(a); write(b); end.
Гость
Ответ(ы) на вопрос:
Гость
В цикле а увеличивается каждый раз на 1, значит, цикл идет 3 раза. b каждый раз умножается на остаток деления х на 8. Получается 24 = 1*4*6 = 2*3*4 = 2*2*6 х каждый раз целочисленно делится на 8. Последний раз получается 0. Пусть остатки были равны 1, 4 и 6. Тогда число х должно быть равно 1+(4+(6+8)*8)*8 = 929. Пусть остатки были равны 2, 3 и 4. Тогда число х должно быть равно 2+(3+(4+8)*8)*8 = 794. Пусть остатки были равны 2, 2 и 6. Тогда число х должно быть равно 2+(2+(6+8)*8)*8 = 914. Наибольшее из чисел - 929.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы