• Ниже записана программа. Получив на вход число x , эта программа печатает два числа, a и b. Укажите наибольшее из чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.
    var x, a, b: longint;
    begin
    readln(x);
    a:=0; b:=0;
    while x > 0 do begin
    a:= a + 1;
    b:= b + (x mod 100);
    x:= x div 100;
    end;
    writeln(a); write(b);
    end.

Ответы 1

  • a=2

    b=8

    цикл произошел два раза из-за a:=a+1

    значит x равен от 100 до 9999(при прохождении получаются числа от 0,01 до 0,9999)

    теперь остался b:

    b в начале был равен и получил 8 при цикле. mod узнаёт остаток деления на 100 которое прошло 2 раза. посмотрим если выберем 9999

    9999(остаток 99) -> 99,99(остаток 99+99). вывод: программа под буквой b вычислила сумма всех двузначных чисел. значит самое максимальное 800( 8 и 0) т.к. если выбрать больше 999 то 1000 это сумма 10 и 0 что не подходит. а нам надо самое максимальное.

    Ответ:800

    • Автор:

      virgilio
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years