Условие: Тип 23 № 13498
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 3
Сколько существует программ, для которых при исходном числе 1 результатом является число 17 и при этом траектория вычислений содержит число 9?
Вариант 1: решение через рекурсивную функцию
Комментарии к первому варианту решения задачи:
# Код решения вариант 1
def F(a, b):
if a > b:
return 0
if a == b:
return 1
else:
return F(a + 1, b) + F(a + 3, b)
print(F(1, 9) * F(9, 17))
Вариант 2: тоже решение через рекурсивную функцию
Решение полностью аналогичное первому варианту, за исключением return int(a == b)
, такая конструкция возвращает 1
, если a
равно b
, иначе возвращает 0