Ниже записана программа. Получив на вход число 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.

Ответы:
ГЕОРГИЙ БАЗИЛЕВСКИЙ
20-03-2011 11:16

В цикле а увеличивается каждый раз на 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.

Также наши пользователи интересуются:

⭐⭐⭐⭐⭐ Лучший ответ на вопрос «Ниже записана программа. Получив на вход число 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.» от пользователя Григория Дьячкова в разделе Экономика. Задавайте вопросы и делитесь своими знаниями.

Открой этот вопрос на телефоне - включи камеру и наведи на QR-код!