Решение: Минимальное число по цифрам
Ниже на четырёх языках программирования записан один и тот же алгоритм. Получив на вход число $x$, алгоритм печатает два числа: $a$ и $b$. Найдите наименьшее число $x$, при вводе которого алгоритм печатает сначала $10$, а затем $7$.
1x = int(input()) 2a = 0 3b = 0 4while x > 0: 5 c = x % 10 6 a = a + c 7 if c > b: 8 b = c 9 x = x // 10 10print(a) 11print(b)
Решение по шагам
3 шагаНа каждой итерации алгоритм выделяет последнюю цифру числа, прибавляет её к $a$ и сохраняет в $b$ наибольшую из обработанных цифр.
$$a=\text{сумма цифр }x,\quad b=\max\text{ цифр }x$$Следовательно, сумма цифр искомого числа должна быть равна $10$, а наибольшая цифра — $7$. Чтобы число было наименьшим, проверим двузначные числа: при десятке $1$ нужна цифра $9$, но тогда максимальная цифра будет $9$; при десятке $2$ нужна цифра $8$, что также не подходит.
При десятке $3$ подходит единица $7$: сумма цифр равна $10$, а наибольшая цифра равна $7$.
$$3+7=10,\quad \max(3,7)=7$$Где здесь ошибаются
Путают сумму цифр с максимальной цифрой.
Выбирают число 19 или 28, не учитывая условие о максимальной цифре $7$.
Не ищут наименьшее подходящее число.