递归的定义
递归就是函数自己调用自己的过程.
理解递归的字面意思:递归有递才有归
递归的条件
1.自己调用自己
2.有结束条件
栈溢出
在程序运行的时候调用函数是有代价的,那就是要占用一个叫栈(stack)的内存空间,当函数调用时,必须要放一些数据到栈中,当函数运行结束后,这些函数会从栈中被取出,可想而知当调用许多函数且这些函数都不返回(即不结束)时,栈就会被塞满,数据没地方放了,这种情况叫栈溢出错误,程序会被操作系统强行终止.
递归应用
例子1 斐波那契数列
def fib(n): """ 用递归写斐波那契数列1,1,2,3,5,8(这里不加零其实是为了好写) :param n: 第n个数 :return: """ if n <= 1: return n return fib(n - 1) + fib(n - 2)
例子2:高斯从1加到100
def gao(n): """ 高斯从1加到100 :param n:从1加到n :return: """ if n == 1: return 1 return n + gao(n - 1)
总结:
递归有个特点,从最远处开始慢慢接近终止条件
浙公网安备 33010602011771号