Решение: Максимальное значение входа
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 4, а потом 6.
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)
Решение по шагам
3 шагаПусть исходное число представлено в виде $x_0=9q+r$, где $q$ — частное, а $r$ — остаток от деления на 9. После цикла $L=q$, а $x=r$.
$$x_0=9q+r,\quad 0\leq r<9$$После цикла переменная $M$ получает значение остатка: $M=r$. Если $r<q$, выполняется условие, и значения меняются местами: итоговые $L=r$, $M=q$.
Поэтому для вывода 4 и 6 необходимо $r=4$ и $q=6$. Условие перестановки выполняется, поскольку $4<6$.
$$x_0=9\cdot6+4=58$$Где здесь ошибаются
Не учитывать перестановку значений при выполнении условия $M<L$.
Взять число $9\cdot4+6$, перепутав частное и остаток.
Искать только одно значение $x$, не проверяя условие максимальности.