Вычисление факториала
Вводится натуральное число. Вычислить его факториал.
Решение задачи на языке программирования Python
Факториалом числа называют произведение всех натуральных чисел до него включительно. Например, факториал числа 5 равен произведению 1 * 2 * 3 * 4 * 5 = 120.
Формула нахождения факториала:
n! = 1 * 2 * … * n,
где n – это число, а n! – факториал этого числа.
Формулу можно представить в таком виде:
n! = 1 * … * (n-2) * (n-1) * n,
т. е. каждый предыдущий множитель меньше на единицу, чем последующий. Или в перевернутом виде, когда каждый следующий меньше предыдущего на единицу:
n! = n * (n-1) * (n-2) * … * 1,
Для вычисления факториала с помощью цикла можно использовать любую формулу. Для рекурсивного вычисления используется последний вариант.
Вычисление факториала с помощью циклов
С помощью цикла while
:
n = int(input()) factorial = 1 while n > 1: factorial *= n n -= 1 print(factorial)
Вычисление факториала с помощью цикла for
:
n = int(input()) factorial = 1 for i in range(2, n+1): factorial *= i print(factorial)
Нахождение факториала рекурсией
def fac(n): if n == 1: return 1 return fac(n - 1) * n print(fac(5))
Поток выполнения программы при n = 5:
- Вызов функции
fac(5)
-
fac(5)
вызываетfac(4)
-
fac(4)
вызываетfac(3)
-
fac(3)
вызываетfac(2)
-
fac(2)
вызываетfac(1)
-
fac(1)
возвращает вfac(2)
число 1 -
fac(2)
возвращает вfac(3)
число 1 * 2, т. е. 2 -
fac(3)
возвращает вfac(4)
число 2 * 3, т. е. 6 -
fac(4)
возвращает вfac(5)
число 6 * 4, т. е. 24 -
fac(5)
возвращает число 24 * 5, т. е. 120 в основную ветку программы - Число 120 выводится на экран
Функция factorial модуля math
Модуль math
языка программирования Python содержит функцию factorial
, принимающую в качестве аргумента неотрицательное целое число и возвращающую факториал этого числа:
>>> import math >>> math.factorial(4) 24