def fact(n):
    if n == 0:
        return 1
    return n * fact(n - 1)
print(fact(4))
Код вычисляет факториал числа 4 рекурсивным способом.
Функция fact(n):
n равно 0, возвращает 1 (базовый случай рекурсии).n умноженное на результат вызова fact(n-1) (рекурсивный вызов).При вызове fact(4), произойдут следующие вычисления:
fact(4) вернет 4 * fact(3)fact(3) вернет 3 * fact(2)fact(2) вернет 2 * fact(1)fact(1) вернет 1 * fact(0)fact(0) вернет 1В результате, будет вычислено 4 * 3 * 2 * 1 * 1 = 24.
Программа выведет на экран 24.
Задача: Реализовать функцию для вычисления факториала числа с использованием рекурсии.
Решение на Python:
  def fact(n):
    if n == 0:
      return 1
    return n * fact(n - 1)
  print(fact(4))
  Разбор решения:
fact(n) вычисляет факториал числа n.n равно 0, функция возвращает 1 (факториал 0 равен 1).  Это необходимо, чтобы остановить рекурсию.n больше 0, функция возвращает n, умноженное на результат вызова самой себя с аргументом n - 1 (fact(n - 1)).fact(4) = 4 * fact(3)fact(3) = 3 * fact(2)fact(2) = 2 * fact(1)fact(1) = 1 * fact(0)fact(0) = 1 (базовый случай)fact(4) = 4 * 3 * 2 * 1 * 1 = 24
    Ожидаемый вывод:
24Дополнительные замечания:
RecursionError.n.