Исполнитель решил сыграть в игру. Он преобразовывает числа на доске с помощью трёх команд:
1. Вычесть 2
2. Вычесть 3
3. Извлечь корень
Первые две команды уменьшают число на доске на 2 и 3 соответственно, третья команда — извлекает из числа квадратный корень, если число является квадратом любого числа. Программа для такого исполнителя — это последовательность команд.
Сколько существует программ, которые преобразуют исходное число 25 в число 3?
def F(x, y):
if x == y:
return 1
if x < y:
return 0
if x > y:
return F(x - 2, y) + F(x - 3, y) + (F(pow(x, 0.5), y) if x >= 0 else 0)
print(F(25, 3))
Ответ: 238