Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

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

более месяца назад
Просмотров : 94    Ответов : 1   

Лучший ответ:

В цикле а увеличивается каждый раз на 1, значит, цикл идет 3 раза.
b каждый раз умножается на остаток деления х на 8.
Получается 24 = 1*4*6 = 2*3*4 = 2*2*6
х каждый раз целочисленно делится на 8. Последний раз получается 0.
Пусть остатки были равны 1, 4 и 6.
Тогда число х должно быть равно 1 (4 6*8)*8 = 417.
Пусть остатки были равны 2, 3 и 4.
Тогда число х должно быть равно 2 (3 4*8)*8 = 282.
Пусть остатки были равны 2, 2 и 6.
Тогда число х должно быть равно 2 (2 6*8)*8 = 402.
Наибольшее из чисел - 417.

более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: