欢迎访问宙启技术站
智能推送

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的阶乘。

需要注意的是,递归的方式虽然简洁,但当输入的数值较大时,会导致递归堆栈溢出的问题。因此,对于大数值的阶乘计算,建议使用循环(迭代)的方式实现。