python--递归函数讲解

python--递归函数讲解,第1张

概述递归算法是一种直接或间接调用自身算法的过程。 递归算法解决问题的特点: (1)递归就是在过程或函数里调用自身 (2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。 (3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低,所以一般不提倡用递归算法设计程序。 (4)在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储,递归次数过多容易造成栈溢出等。 2、递归的要求 递 @H_502_6@@H_502_7@递归算法是一种直接或间接调用自身算法的过程。

@H_502_6@@H_502_7@递归算法解决问题的特点:

@H_502_6@@H_502_7@(1)递归就是在过程或函数里调用自身

@H_502_6@@H_502_7@(2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

@H_502_6@@H_502_7@(3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低,所以一般不提倡用递归算法设计程序。

@H_502_6@@H_502_7@(4)在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储,递归次数过多容易造成栈溢出等。

@H_502_6@@H_502_7@2、递归的要求

@H_502_6@@H_502_7@递归算法所体现的“重复”一般有三个要求:

@H_502_6@@H_502_7@(1)每次调用在规模上都有所缩小(通常是减半)

@H_502_6@@H_502_7@(2)是相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出作为后一次的输入)

@H_502_6@@H_502_7@(3)在问题的规模极小时必须用直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模位达到直接解答的大小为条件)无条件递归调用将会成为死循环而不能正常结束。

@H_502_6@ 

@H_502_6@@H_502_7@实例:写函数,利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。

@H_502_7@

@H_502_7@1 def foo(depth,a1,a2): 2     if depth == 10: 3         return a1 4     a3 = a1 + a2 5     r = foo(depth + 1,a2,a3) 6     return r 7 8 ret = foo(1,1) 9 print(ret)
VIEw Code 总结

以上是内存溢出为你收集整理的python--递归函数讲解全部内容,希望文章能够帮你解决python--递归函数讲解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存