Шешімі: Максимальное входное число
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 4, а потом 5.
1x = int(input()) 2Q = 9 3L = 0 4while x >= Q: 5 L = L + 1 6 x = x - Q 7M = x 8if M < L: 9 M = L 10 L = x 11print(L) 12print(M)
Шешім по шагам
4 қадамВ цикле из числа $x$ вычитают 9, пока это возможно. Поэтому после цикла $L$ — частное, а оставшееся значение $M$ — остаток от деления $x$ на 9: $x=9L+r$, где $M=r$.
Если остаток меньше частного, алгоритм присваивает $M=L$, а $L=r$. Чтобы получить вывод 4, затем 5, возможен случай $r=4$, $L=5$.
В этом случае $x=9\cdot5+4=49$. Другой нұсқа без обмена: $L=4$, $r=5$, тогда $x=9\cdot4+5=41$.
Наибольшее из подходящих чисел — 49.
Где здесь ошибаются
Забывают, что при условии $M<L$ значения $L$ и $M$ меняются местами.
Рассматривают только случай $L=4$, $M=5$ и получают 41, не проверяя случай после обмена.
Путают частное и остаток при делении на 9.