函数递归
习题另开了一个随笔,欢迎查看。
函数递归调用:
函数递归调用,即一种特殊的嵌套调用。在调用一个函数的过程中,又直接或间接地调用了该函数的本身。
递归必须要有两个阶段:递推与回溯
递推:一层一层递归调用下去,强调每进入下一层递归的规模都必须有所减少。
回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推,并开始回溯。
递推的精髓在于通过不断的重复逼近一个最终的结果
为什么要用函数递归:递归做的事循环都嗯那个解决,但是有的用递归做起来会比较简单。
直接调用
import sys
print(sys.getrecursionlimit())
sys.setrecursionlimit(3000)
def foo(n):
print('from foo',n)
foo(n+1)
foo(0)
间接调用,原理还是一样,到用函数bar还是胡i执行调用foo
def bar():
print('from bar')
foo()
def foo():
print('from foo')
bar()
foo()
越是困难的事越要立即去做,这样收益才会最大!!!