Программа Python для вычисления факториала через рекурсию

Факториал числа — произведение всех целых чисел от 1 до этого числа.

Например, факториал 6 равен 1*2*3*4*5*6 = 720. Для отрицательных чисел факториал не определён, а 0! = 1.

Что нужно знать

Пример

# Факториал числа через рекурсию

def recur_factorial(n):
   if n == 1:
       return n
   else:
       return n*recur_factorial(n-1)

num = 7

# проверяем знак числа
if num < 0:
   print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   print("The factorial of", num, "is", recur_factorial(num))

Вывод

The factorial of 7 is 5040

Примечание

Чтобы найти факториал другого числа, поменяйте значение num.

Число хранится в num и передаётся в функцию recur_factorial(), которая считает его факториал.

Как это работает

Функция recur_factorial(n) использует определение факториала через рекурсию: n! = n * (n-1)!. Базовый случай — n == 1, при нём возвращаем сам n. Для остальных значений функция вызывает саму себя с аргументом n-1, и в результате получается произведение всех чисел от 1 до n.