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.