Вычисление факториала числа с использованием рекурсии

Описание задачи

Программа принимает на вход число и вычисляет факториал этого числа с использованием рекурсивного алгоритма.

Решение задачи

  1. Записываем введенное пользователем число в отдельную переменную.
  2. Передаем это число в качестве аргумента в рекурсивную функцию, которая вычисляет факториал.
  3. Определяем внутри этой функции базовое условие рекурсии: в случае, когда аргумент функции меньше либо равен 1, рекурсивная функция прекращает свою работу и возвращает в качестве результата 1.
  4. В противном случае в качестве результата возвращается число, умноженное на рекурсивную функцию, аргумент которой уменьшен на единицу. И все повторяется заново.
  5. После того, как рекурсивная функция прекратила свою работу, на экран выводится результат.
  6. Конец.

Исходный код

Ниже дан исходный код, который осуществляет нахождение факториала числа при помощи рекурсии. Результаты работы программы также даны ниже.

def factorial(n):
    if (n <= 1):
        return 1
    else:
        return (n * factorial(n-1))
n = int(input("Введите число:"))
print("Факториал числа равен:")
print(factorial(n))

Объяснение работы программы

  1. Пользователь вводит число и оно записывается в переменную n.
  2. Передаем число n в качестве аргумента в рекурсивную функцию, которая вычисляет факториал этого числа.
  3. Задаем базу рекурсии при помощи условия n <= 1 . Если оно выполняется, рекурсивная функция возвращает 1 и ее работа останавливается.
  4. В противном случае функция возвращает n * factorial(n-1) и все повторяется заново.
  5. После того, как функция завершит свою работу, результат выводится на экран.

Результаты работы программы

Пример 1:
Введите число:5
Факториал числа равен:
120
 
Пример 2:
Введите число:9
Факториал числа равен:
362880