码迷,mamicode.com
首页 > 编程语言 > 详细

python中递归函数

时间:2016-12-04 01:08:03      阅读:304      评论:0      收藏:0      [点我收藏+]

标签: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中递归函数

标签:python 递归 算法 函数 阶乘

原文地址:http://matrix6ro.blog.51cto.com/1746429/1879171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!