Задача #1502
Количество программ
(М. Ишимов) Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены латинскими буквами:
. Прибавить 2
. Возвести в квадрат
. Умножить на 3
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 2 результатом является число 64, если после выполнения команды можно выполнить только команду или
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
55
Видео по задаче
def f(s, e, last):
if s > e: return 0
if s == e: return 1
if last == 2: return f(s + 2, e, 1) + f(s * 3, e, 3)
return f(s + 2, e, 1) + f(s ** 2, e, 2) + f(s * 3, e, 3)
print(f(2, 64, 0))