码迷,mamicode.com
首页 > 其他好文 > 详细

函数递归

时间:2019-11-15 20:28:56      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:return   ret   print   相互   color   没有   info   limit   set   

函数递归:

函数递归指的是重复 “直接调用或间接调用” 函数本身,
这是一种函数嵌套调用的表现形式。

直接调用: 指的是在函数内置,直接调用函数本身。
间接调用: 两个函数之间相互调用间接造成递归。

了解:
python中有递归默认深度: 限制递归次数
998, 1000
PS: 但是在每一台操作系统中都会根据硬盘来设置默认递归深度。

获取递归深度: 了解
sys.getrecursionlimit()

设置递归深度: 了解
sys.setrecursionlimit(深度值)


注意: 单纯的递归调用时没有任何意义的。

  • 想要递归有意义,必须遵循两个条件:
    - 回溯:
    指的是重复地执行, 每一次执行都要拿到一个更接近于结果的结果,
    回溯必要有一个终止条件。

    - 递推:
    当回溯找到一个终止条件后,开始一步一步往上递推。

技术图片

   age5 == age4 + 2
    age4 == age3 + 2
    age3 == age2 + 2
    age2 == age1 + 2
    age1 == 18  # 回溯终止的结果

    # result = age(n - 1) + 2
‘‘‘

def age(n):
    if n == 1:
        return 18

    # 这里写return才能实现递推
    return age(n - 1) + 2

res = age(5)
print(res)  # 26

 

 

函数递归

标签:return   ret   print   相互   color   没有   info   limit   set   

原文地址:https://www.cnblogs.com/lvguchujiu/p/11869218.html

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