Исполнитель Калькулятор преобразует число на экране. У исполнителя есть три команды, которые присвоены номера:
A. Вычти 1
B. Вычти 6
C. Найди целую часть от деления на 2
Первая команда уменьшает число на экране на 1, вторая команда уменьшает это число на 6, третья команда делит число нацело на 2. Программа для исполнителя — это последовательность команд.
Сколько существует таких программ, которые исходное число 34 преобразуют в число 6, и при этом траектория вычислений содержит числа 19 и 29 и не содержит числа 24?
Решение:
Решение на Python:
def F(x, y):
if x < y or x == 24:
return 0
if x == y:
return 1
if x > y:
return F(x - 1, y) + F(x - 6, y) + F(x // 2, y)
print(F(34, 29) * F(29, 19) * F(19, 6))
Ответ: 115
Ответ:
115