递归的定义

递归就是函数自己调用自己的过程.

理解递归的字面意思:递归有递才有归

递归的条件

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)

总结:

递归有个特点,从最远处开始慢慢接近终止条件

 

posted on 2020-03-23 22:57  程序员一学徒  阅读(86)  评论(0)    收藏  举报