Задача #4354

Количество программ

Уровень ЕГЭ

(А. Шуруха) Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Прибавь 1
B. Допиши сумму
Первая команда увеличивает число на экране на 1. Вторая команда применяется только к числу, сумма цифр которого меньше 10,
и действует, дописывая эту сумму цифр справа.
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 3 результатом является число 200?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы.
Например, для программы AAB при исходном числе 3 траектория состоит из чисел 4, 5, 55.

Ответ
Новая
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть Нажми, чтобы скрыть

Ответ

17
def f(c, e):
if c > e: return 0
if c == e: return 1
p = str(c)
r = 0
r += f(c + 1, e) # A
if sum(map(int, p)) < 10: r += f(int(p + str(sum(map(int, p)))), e) # B
return r
print(f(3, 200))
Быстрый переход
Перейти к задаче