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 后开始返回到其先前的调用。 第一次调用的返回值是所有调用的返回值的累积乘积。