Ниже записана программа. Получив на вход число x , эта программа печатает два числа, a и...

0 интересует 0 не интересует
153 просмотров

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


спросил от (19 баллов) в категории Информатика
1 Ответ
0 интересует 0 не интересует
ответил от Начинающий (531 баллов)

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

...