Факториал числа питон функция

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

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

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

n! = 1 * 2 * … * n,

где n – это число, а 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 == 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

Источник

Читайте также:  What is headless javascript

3 способа вычислить факториал в Python

3 способа вычислить факториал в Python

Статьи

Введение

В ходе статьи рассмотрим 3 способа вычислить факториал в Python.

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

Цикл while

Для начала дадим пользователю возможность ввода числа и создадим переменную factorial равную единице:

number = int(input('Введите число: ')) factorial = 1

Как мы знаем, факториал – это произведение натуральных чисел от единицы до числа n. Следовательно создадим цикл, который не закончится, пока введённое пользователем число больше единицы. Внутри цикла увеличиваем значение в переменной factorial умножая его на переменную number, после чего уменьшаем значение в number на единицу:

number = int(input('Введите число: ')) factorial = 1 while number > 1: factorial = factorial * number number = number - 1 print(factorial) # Введите число: 10 # 3628800

Цикл for

Обычно способ нахождения факториала при помощи цикла for не рассматривается, но почему бы и нет. Принцип не сильно отличается от цикла while, просто приравниваем значение введённое пользователем к переменной factorial, а в цикле указываем количество итреаций начиная с единицы, и заканчивая введённым числом:

number = int(input('Введите число: ')) factorial = number for i in range(1, number): factorial = factorial * i print(factorial) # Введите число: 5 # 120

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

Для вычисления факториала про помощи рекурсии, создадим функцию factorial(), и в качестве аргумента передадим number:

Внутри функции добавим условие, что если переданное число в аргумент number равняется единице, то возвращаем его. Если же условие не сработало, то вернётся аргумент number умноженный на вызов функции factorial() с передачей аргумента number – 1:

def factorial(number): if number == 1: return number else: return number * factorial(number - 1)

Дадим пользователю возможность ввода, вызовем функцию и выведем результат в консоль:

def factorial(number): if number == 1: return number else: return number * factorial(number - 1) print(factorial(int(input('Введите число: ')))) # Введите число: 7 # 5040

Вычисление факториала методом factorial()

В стандартном модуле math есть специальный метод для вычисления факториала под названием factorial(). Используем его для нахождения факториала:

from math import factorial number = int(input('Введите число: ')) print(factorial(number)) # Введите число: 4 # 24

Заключение

В ходе статьи мы с Вами рассмотрели целых 3 способа вычислить факториал в Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Читайте также:  Специалист программирование на java

Источник

Оцените статью