Мало хто знає, але Python пропонує пряму функцію, яка може обчислити факторіал числа без написання всього коду для обчислення факторіалу.
Наївний метод обчислення факториалу
Python3
хто винайшов школу
# Python code to demonstrate naive method> # to compute factorial> n>=> 23> fact>=> 1> for> i>in> range>(>1>, n>+>1>):> >fact>=> fact>*> i> print>(>'The factorial of 23 is : '>, end>=>'')> print>(fact)> |
>
>
міститься в рядкуВихід
The factorial of 23 is : 25852016738884976640000>
Часова складність: O(n)
Допоміжний простір: О(1)
Використання math.factorial()
Цей спосіб визначено в математика модуль python. Оскільки він має внутрішню реалізацію типу C, він швидкий.
math.factorial(x) Parameters : x : The number whose factorial has to be computed. Return value : Returns the factorial of desired number. Exceptions : Raises Value error if number is negative or non-integral.>
Python3
# Python code to demonstrate math.factorial()> import> math> print>(>'The factorial of 23 is : '>, end>=>'')> print>(math.factorial(>23>))> |
>
vlc для завантаження youtube
>Вихід
The factorial of 23 is : 25852016738884976640000>
Часова складність: O(n)
Допоміжний простір: О(1)
Винятки в math.factorial()
- Якщо задане число негативне:
Python3
# Винятки (нецілісне число)
імпорт математики
print(факторіал 5,6 дорівнює: , end=)
# викликає виключення
print(math.factorial(5.6))
>
>
Вихід:
Traceback (most recent call last): File '/home/f29a45b132fac802d76b5817dfaeb137.py', line 9, in print (math.factorial(-5)) ValueError: factorial() not defined for negative values>
- Якщо задане число є нецілим значенням:
Python3
сортування вставкою
>
>
Вихід:
Traceback (most recent call last): File '/home/3987966b8ca9cbde2904ad47dfdec124.py', line 9, in print (math.factorial(5.6)) ValueError: factorial() only accepts integral values>
java відкриває файл