首页 > 代码库 > python中递归函数

python中递归函数

递归函数即直接或间接地调用自身以进行循环的函数


def mySum(L):
    if not L:
        return 0
    else:
        return L[0]+mySum(L[1:])

print mySum([1,2,3,4,5])

这个函数用递归的方法计算列表所有元素的和

在每一层,函数都递归的调用自己来计算列表剩余的值的和。


还有一个递归方法计算阶乘:


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

print (factorial(5))
120



递归函数也可以用于计算Fibonacci数列

def recur_fibo(n):
   """递归函数
   输出斐波那契数列"""
   if n <= 1:
       return n   
   else:
       return(recur_fibo(n-1) + recur_fibo(n-2))


有一个问题跟fibonacci数列很像, 只是初始的两个数情况不同

假设一个楼梯有 N 阶台阶,人每次最多可以跨 2 阶,求总共的爬楼梯方案数,用递归实现如下:

def DP(n):
    
    if n <= 2:
        return n
    else:
        return DP(n-1) + DP(n-2)

print DP(5)


递归就介绍到这里。


python中递归函数