Python函数:如何用递归实现阶乘计算
发布时间:2023-06-30 18:09:24
阶乘是指对一个非负整数n,阶乘(factorial)的定义为n! = n * (n-1) * (n-2) * ... * 2 * 1。可以用递归的方式来实现阶乘的计算。
递归是指在函数的定义中使用函数自身的方法。在阶乘计算中,递归的思想是将n的阶乘表示为n乘以(n-1)的阶乘。
下面是用递归方式实现阶乘计算的Python代码:
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
在这段代码中,factorial()函数接收一个非负整数n作为参数。首先检查n是否等于0或1,如果是的话,直接返回结果1。如果n大于1,则返回n乘以factorial(n-1)的结果。这里就是利用了递归,函数自身调用来计算阶乘。
接下来可以测试一下这个阶乘函数:
print(factorial(5)) # 输出 120 print(factorial(10)) # 输出 3628800
输出的结果分别是5的阶乘和10的阶乘。
需要注意的是,递归的方式虽然简洁,但当输入的数值较大时,会导致递归堆栈溢出的问题。因此,对于大数值的阶乘计算,建议使用循环(迭代)的方式实现。
