Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены буквами:
A. Вычти 3
B. Если число чётное, Раздели на 2, Иначе Вычти 5
Программа для исполнителя — это последовательность команд.
Сколько существует программ, которые преобразуют исходное число 36 в число 3 и при этом траектория вычислений не содержит числа 12?
Решение:
Решение на Python:
def F(x, y):
if x < y or x == 12:
return 0
if x == y:
return 1
if x % 2 == 0:
return F(x - 3, y) + F(x // 2, y)
else:
return F(x - 3, y) + F(x - 5, y)
print(F(36, 3))
Ответ: 16
Ответ:
16