递归函数即直接或间接地调用自身以进行循环的函数
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)
递归就介绍到这里。
时间: 2024-10-17 21:49:36