Шешімі: Максимальное входное число
Ниже на пяти языках программирования записан один и тот же алгоритм. Получив на вход целое число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала $5$, а потом $8$.
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$, пока результат не станет меньше $9$. Поэтому после цикла $L=q$, а оставшееся значение $M=r$, где $x=9q+r$ и $0\leq r<9$.
$$x=9q+r$$Если $r<q$, алгоритм заменяет $M$ на $q$, а $L$ на $r$. Чтобы получить сначала $5$, а затем $8$, можно взять $q=8$, $r=5$.
Тогда исходное число равно:
$$x=9\cdot8+5=77$$Другой нұсқа $q=5$, $r=8$ даёт число $53$, поэтому он не является максимальным.
Где здесь ошибаются
Забывают, что при $r<q$ значения $L$ и $M$ меняются местами.
Выбирают число $53$, не проверяя, что требуется наибольшее значение $x$.