Описание задачи
Программа принимает на вход число и вычисляет факториал этого числа с использованием рекурсивного алгоритма.
Решение задачи
- Записываем введенное пользователем число в отдельную переменную.
- Передаем это число в качестве аргумента в рекурсивную функцию, которая вычисляет факториал.
- Определяем внутри этой функции базовое условие рекурсии: в случае, когда аргумент функции меньше либо равен
1
, рекурсивная функция прекращает свою работу и возвращает в качестве результата1
. - В противном случае в качестве результата возвращается число, умноженное на рекурсивную функцию, аргумент которой уменьшен на единицу. И все повторяется заново.
- После того, как рекурсивная функция прекратила свою работу, на экран выводится результат.
- Конец.
Исходный код
Ниже дан исходный код, который осуществляет нахождение факториала числа при помощи рекурсии. Результаты работы программы также даны ниже.
def factorial(n): if (n <= 1): return 1 else: return (n * factorial(n-1)) n = int(input("Введите число:")) print("Факториал числа равен:") print(factorial(n))
Объяснение работы программы
- Пользователь вводит число и оно записывается в переменную
n
. - Передаем число
n
в качестве аргумента в рекурсивную функцию, которая вычисляет факториал этого числа. - Задаем базу рекурсии при помощи условия
n <= 1
. Если оно выполняется, рекурсивная функция возвращает 1 и ее работа останавливается. - В противном случае функция возвращает
n * factorial(n-1)
и все повторяется заново. - После того, как функция завершит свою работу, результат выводится на экран.
Результаты работы программы
Пример 1: Введите число:5 Факториал числа равен: 120 Пример 2: Введите число:9 Факториал числа равен: 362880