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