Задача #4356

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

Уровень ЕГЭ

(А. Шуруха) Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Прибавь 1
B. Поменяй крайние
Первая команда увеличивает число на экране на 1. Вторая команда применяется только к числу, старшая цифра которого меньше
младшей, и действует, меняя местами старшую и младшую цифры числа.
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 102 результатом является число 300?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы.
Например, для программы AAB при исходном числе 102 траектория состоит из чисел 103, 104, 401.

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

Ответ

11
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 len(p) >= 2 and p[0] < p[-1]: r += f(int(p[-1] + p[1:-1] + p[0]), e) # B
return r
print(f(102, 300))
Быстрый переход
Перейти к задаче