Python 中的递归
2023-09-17 22:17:29
调用自身的函数是递归函数。当根据自身定义某个问题时,使用此方法。尽管这涉及迭代,但使用迭代方法来解决此类问题可能很乏味。 递归方法为看似复杂的问题提供了一个非常简洁的解决方案。它看起来很迷人,但可能很难理解!
递归最流行的示例是阶乘的计算。在数学上,阶乘定义为:n!= n * (n-1)!
我们使用阶乘本身来定义阶乘。因此,这是编写递归函数的合适情况。 让我们扩展上面的定义来计算 5 的阶乘值。
5! = 5 X 4!
5 X4 X 3!
5 X4 X 3 X 2!
5 X4 X 3 X 2 X 1!
5 X4 X 3 X 2 X 1
= 120
虽然我们可以使用循环来执行此计算,但它的递归函数涉及通过递减数字直到达到 1 来连续调用它。 下面是用于计算阶乘的递归函数。
def factorial(n):
if n == 1:
print(n)
return 1
else:
print (n,'*', end=' ')
return n * factorial(n-1)
factorial(5) #calling recursive function
上面的递归函数将产生以下输出:
输出:
5 * 4 * 3 * 2 * 1
当以 5 作为参数调用阶乘函数时,将连续调用同一函数,同时减小值 5。 函数在参数达到 1 后开始返回到其先前的调用。 第一次调用的返回值是所有调用的返回值的累积乘积。