Вычисление факториала. Python

Факториалом числа называют произведение всех натуральных чисел до него включительно. Например, факториал числа 5 равен произведению 1 * 2 * 3 * 4 * 5 = 120.

Формула нахождения факториала:

n! = 1 * 2 * … * n,

где n – это число, а n! – факториал этого числа.

Формулу можно представить в таком виде:

n! = 1 * … * (n-2) * (n-1) * n,

т. е. каждый предыдущий множитель меньше на единицу, чем последующий.

С помощью цикла можно найти факториал как по первой, так и второй формуле. Для вычисления факториала с помощью рекурсии используется вторая формула.

Вычисление факториала циклом

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 == 0:
        return 1
    return fac(n-1) * n
 
 
print(fac(5))

0 шаг. Вызов функции: fac(5)

  1. fac(5) возвращает fac(4) * 5
  2. fac(4) => fac(3) * 4
  3. fac(3) => fac(2) * 3
  4. fac(2) => fac(1) * 2
  5. fac(1) => 1
  6. 1 * 2 — возврат в вызов fac(2)
  7. 2 * 3 — fac(3)
  8. 6 * 4 — fac(4)
  9. 24 * 5 – fac(5)
  10. Возврат в основную ветку программы значения 120.

Функция factorial() модуля math

Модуль math языка программирования Python содержит функцию factorial, принимающую в качестве аргумента неотрицательное целое число и возвращающую факториал этого числа:

>>> import math
>>> math.factorial(4)
24

Оцените статью
( Пока оценок нет )