Untitled

Условие: Тип 23 № 13498

У исполнителя есть две команды, которым присвоены номера:

1.  Прибавить 1
2.  Прибавить 3

Сколько существует программ, для которых при исходном числе 1 результатом является число 17 и при этом траектория вычислений содержит число 9?

Вариант 1: решение через рекурсивную функцию

Вариант 1: решение через рекурсивную функцию

Комментарии к первому варианту решения задачи:

  1. создаем функцию, которая будет принимать и обрабатывать значение функции
  2. если первое число больше второго
  3. то возвращаем 0
  4. если первое число равно второму
  5. то возвращаем 1
  6. иначе
  7. возвращаем return F(a + 1, b) + F(a + 3, b) #, то есть используем рекурсию
  8. вызываем функцию, траектория которой удовлетворяет условию
# Код решения вариант 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: тоже решение через рекурсивную функцию

Вариант 2: тоже решение через рекурсивную функцию

Решение полностью аналогичное первому варианту, за исключением return int(a == b) , такая конструкция возвращает 1, если a равно b, иначе возвращает 0