• 2017寒假零基础学习Python系列之函数之 递归函数


    什么是递归函数?
    在函数内部,也可以继续调用其他函数,如果一个函数在内部调用本身,这个函数为递归函数
    举一个求n的阶乘的例子:

    def fact(n):
    if n == 1:
    return 1;
    else:
    return n * fact(n-1)
    print fact(5)
    >>>120

    以上就是一个递归函数

    这个函数运行的过程如下:

    ===> fact(5)
    ===> 5 * fact(4)
    ===> 5 * (4 * fact(3))
    ===> 5 * (4 * (3 * fact(2)))
    ===> 5 * (4 * (3 * (2 * fact(1))))
    ===> 5 * (4 * (3 * (2 * 1)))
    ===> 5 * (4 * (3 * 2))
    ===> 5 * (4 * 6)
    ===> 5 * 24
    ===> 120

    注:但使用递归函数需要防止栈(stack)溢出,函数的调用是通过栈(stack)这种数据结构来实现,每当进入一个函数调用,栈就会增加一层栈帧,每当函数返回时,就会减少一层栈帧,由于栈的大小不是无限的,所以,递归调用的次数过多时,会导致栈溢出

  • 相关阅读:
    必备单词
    Vim
    Linux基础
    python链表操作详解
    冒泡和快速排序
    学员练车选课系统
    面试题
    获取resp:heads:content-disposition的filename
    记录springBoot启动报错(无脑型)
    springBoot+Vue搭建新项目(1)
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/6371310.html
Copyright © 2020-2023  润新知