📜  递归求自然数的阶乘. - Python (1)

📅  最后修改于: 2023-12-03 14:58:01.798000             🧑  作者: Mango

递归求自然数的阶乘 - Python

阶乘是指一个数 n 的阶乘可以表示成 n * (n - 1) * (n - 2) * ... * 1。递归是一种算法,其中函数通过自身调用来解决问题。在 Python 中,可以使用递归函数来计算任意自然数的阶乘。

代码实现

下面是一个以 Python 语言实现递归计算自然数阶乘的简单代码片段:

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

这个递归函数首先检查输入值是否为1,如果是1,则直接返回1,否则使用递归来计算 n 的阶乘。在计算 n 的阶乘时,递归函数调用自身来计算 n - 1 的阶乘,然后将返回值 n * (n - 1)! (n 的阶乘等于 n 乘以 n - 1 的阶乘)。递归会一直进行到 n 等于1时,递归调用停止并返回结果。

测试代码

为了测试递归函数,可以使用以下代码来打印 1 到 10 的阶乘:

for i in range(1, 11):
    print(i, factorial(i))

结果应该如下所示:

1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
结论

递归是一种非常强大的算法,可以用来解决各种复杂问题。然而,递归函数如果使用不当,可能会变得非常慢或栈溢出。因此,在使用递归算法时,必须小心并确保正确地设计递归结构。