Шаблон рекурсивной функции
# Рекурсивная функция
def rec(now, last):
if now == last:
# Проверка, что получили нужное число
return 1
if now > last:
# Проверка, что превысили нужное число ???
return 0
# Вызов рекурсивной функции с учетом заданных команд изменения числа
return rec(now
+ ???, last) + ???
# Основная программа
print(rec(???))
# Вызов рекурсивной функции с начальными значениями
Задача
Исполнитель
Минус преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Вычесть 2
2. Вычесть 5
Первая команда уменьшает число на экране на 2, вторая уменьшает это число на 5. Программа для исполнителя Минус – это последовательность команд.
Сколько существует программ, которые число 48 преобразуют в число 5 и при этом траектория вычислений содержит число 28?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 112 при исходном числе 17 траектория будет состоять из чисел 15, 13, 8.