在 Python 中计算阶乘
一个数的阶乘是所有小于或等于这个数的正整数的乘积。例如,5 的阶乘是所有小于等于 5 的数字的乘积,即 5 * 4 * 3 * 2 * 1
,等于 120。因此,数字 5 的阶乘是 120。
现在让我们写一个 Python 函数来计算一个数字的阶乘。在 Python 中,我们有两种方法可以写一个阶乘程序,一种是使用迭代法,另一种是使用递归法。
在 Python 中使用迭代法计算一个数的阶乘数
使用迭代方法的阶乘程序无非是在我们的程序中使用循环,如 for
循环或 while
循环。在 Python 中编写阶乘迭代程序时,我们必须检查三个条件。
- 给定的数字是负数。如果这个数字是负数,那么我们将简单地说,我们找不到阶乘,因为负数的阶乘不存在。
- 给定的数字是零。如果数字是零,那么我们将简单地打印
1
,因为零的阶乘是1
。 - 给定的数字是正数。如果数字是正数,那么我们只需要找到它的阶乘。
def factorial(num):
if num < 0:
print("Factorial of negative num does not exist")
elif num == 0:
return 1
else:
fact = 1
while(num > 1):
fact *= num
num -= 1
return fact
num = 5;
print("Factorial of",num,"is", factorial(num))
输出:
Factorial of 5 is 120
在 Python 中使用递归计算一个数字的阶乘
递归无非就是一次又一次地调用同一个函数。使用递归,我们可以编写更少的代码行,这将比我们使用迭代方法编写的代码更具可读性。
每当我们调用一个递归函数时,都会在内存中创建一个递归栈。这个递归栈有一个叫做程序计数器的东西,它可以跟踪递归函数执行完毕后下一条要执行的指令。
def factorial(n):
return 1 if (n==1 or n==0) else n * factorial(n - 1);
num = 5;
print("Factorial of",num,"is", factorial(num))
输出:
Factorial of 5 is 120
使用 Python 中的 math.factorial()
函数计算一个数字的阶乘
你想用一行字就写出一个阶乘函数吗?你是否觉得不可能?有一种方法可以用一行代码写一个阶乘函数。可以通过 math
模块来实现。在 math
模块中,有一个 factorial
函数来计算一个数字的阶乘。
你必须从数学模块中导入这个函数,在你的程序中调用它,并传递你想计算的阶乘数。请看下面的例子。
from math import factorial
print ("Factorial is", factorial(5))
输出:
Factorial is 120
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。