先看程序:
刚学习Python的小伙伴一般的写递归都是这样写
运行一下看看:
是不是出错了啊,为什么呢?
怎么会出错了呢?
Python3 默认的递归深度是1000
Python3 的递归调用栈的深度有限制, 可以通过sys.getrecursionlimit()查看
如果没有就会无限的循环下去了
编写递归函数时,必须告诉它何时停止递归。正因为如此,每个递归函数都有两部分:基线 条件(base case)和递归条件(recursive case)。递归条件指的是函数调用自己,而基线条件则 指的是函数不再调用自己,从而避免形成无限循环。
现在修改一下啊:
输出结果是:
怎么样 ,递归算法是不是很简单呢?
主要记住两个条件:
基线条件
递归条件
是不是很容易啊
源码地址:https://www.168seo.cn/data-structure/24293.html
领取专属 10元无门槛券
私享最新 技术干货