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

Вводится натуральное число. Вычислить его факториал.

Решение задачи на языке программирования 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:

  1. Вызов функции fac(5)
  2.   fac(5) вызывает fac(4)
  3.     fac(4) вызывает fac(3)
  4.       fac(3) вызывает fac(2)
  5.         fac(2) вызывает fac(1)
  6.           fac(1) возвращает в fac(2) число 1
  7.         fac(2) возвращает в fac(3) число 1 * 2, т. е. 2
  8.       fac(3) возвращает в fac(4) число 2 * 3, т. е. 6
  9.     fac(4) возвращает в fac(5) число 6 * 4, т. е. 24
  10.   fac(5) возвращает число 24 * 5, т. е. 120 в основную ветку программы
  11. Число 120 выводится на экран

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

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

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


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




Все разделы сайта