zoukankan      html  css  js  c++  java
  • 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)这种数据结构来实现,每当进入一个函数调用,栈就会增加一层栈帧,每当函数返回时,就会减少一层栈帧,由于栈的大小不是无限的,所以,递归调用的次数过多时,会导致栈溢出

  • 相关阅读:
    币值转换
    抓老鼠啊~亏了还是赚了?
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    第五周实验报告和总结
    第四次实验报告及总结
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/6371310.html
Copyright © 2011-2022 走看看