Исполнитель преобразует число на экране. У исполнителя есть три команды, которые обозначены латинскими буквами:
A. Прибавь 3
B. Прибавь 7
C. Умножь на 3
Программа для исполнителя — это последовательность команд.
Сколько существует таких программ, которые исходное число 12 преобразуют в 89, и при этом траектория вычислений программы содержит числа 40 и 72 и не содержит 56?
Решение:
Решение на Python:
def F(x, y):
if x > y or x == 56:
return 0
if x == y:
return 1
if x < y:
return F(x + 3, y) + F(x + 7, y) + F(x * 3, y)
print(F(12, 40) * F(40, 72) * F(72, 89))
Ответ: 324
Ответ:
324