Решение: Минимальное число по алгоритму
Ниже на четырёх языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $a$ и $b$. Укажите наименьшее из таких чисел $x$, при вводе которых алгоритм печатает сначала 2, а потом 9.
1x = int(input()) 2a = 0 3b = 0 4while x > 0: 5 a = a + 1 6 b = b + (x % 10) 7 x = x // 10 8print(a) 9print(b)
Решение по шагам
4 шагаНа каждой итерации цикла из числа удаляется последняя цифра с помощью целочисленного деления на 10. Поэтому переменная $a$ равна количеству цифр исходного числа.
Переменная $b$ накапливает сумму цифр исходного числа.
Первое напечатанное число равно 2, значит исходное число должно быть двузначным. Второе напечатанное число равно 9, значит сумма его цифр должна быть равна 9.
Наименьшее двузначное число с суммой цифр 9 — это $18$, так как $1 + 8 = 9$.
Где здесь ошибаются
Путать количество цифр числа с суммой его цифр.
Выбрать число 9, хотя оно однозначное и алгоритм напечатает первым числом 1.
Искать наименьшее число с двумя цифрами, не проверяя сумму цифр.