首页 > 其他 > 详细

递归函数

时间:2021-04-01 00:44:42      阅读:24      评论:0      收藏:0      [点我收藏+]

一 函数的递归

  函数的递归调用是函数嵌套的一种特殊形式,具体是指在调用一个函数的过程中,直接或间接地调用了自己。

# 直接调用
def
f1(): print(from f1) f1()

f1()

技术分享图片

# 间接调用
def
f1(): print(from f1) f2() def f2(): print(from f2) f1()
f1()

 技术分享图片

从上图可以看出,两种情况下的递归调用都是一个无限循环的过程,但在python对函数的递归调用的深度做了限制,因而并不会像大家所想的那样进入无限循环,会抛出异常,要避免出现这种情况,就必须让递归调用在满足某个特定条件下终止。

 

可以使用sys.getrecursionlimit()去查看递归深度,默认值为1000,虽然可以使用
sys.setrecursionlimit()去设定该值,但仍受限于主机操作系统栈大小的限制,而且也不推荐取改设定

 

 

二 回溯与递推

  回溯:向下一层一层的调用

  递推:向上一层一层的返回

   举例:某公司四个员工,1号员工说自己薪资比2号员工高1000元,2号员工说自己薪资比3号员工高1000元,3号员工说自己薪资比4号员工高1000元,4号员工说自己薪资为5000元,那么一号员工薪资为多少元

# 代码实现过程
def salary(ren):
    if ren == 4:
        return 5000
    return salary(ren + 1) + 1000


s = salary(1)
print(s)
# 运行结果
8000

 

递归函数

原文:https://www.cnblogs.com/poco/p/14603406.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!