> 日常维修
函数和递归的区别(函数递归栈)
导语:函数和递归
函数和程序结构
函数可以简化程序,函数可以使程序模块化
用函数将较长的程序分割成短小的程序段,可以方便理解
程序例子:
将部分功能从程序中移出作为独立函数,星号绘制函数。
星号数量计算函数
整体控制函数
完整程序如下:
整个程序可读性很强。使用函数的思想编写程序,可以大大增加程序的模块化程度
程序的运行结果:
递归的定义
递归:函数定义中使用函数自身的方法
经典例子就是阶乘:n!=n(n-1)(n-2)...(1)
0的阶乘定义为1,其他数字定义为这个数字乘以比这个数字小1的数的阶乘
递归不是循环
递归定义特征:有一个或多个基例是不需要再次递归的;所有的递归链都要以一个基例结尾
递归函数
通过一个累计器循环计算阶乘
阶乘的递归定义函数:
运行递归函数fact()计算阶乘
>>>fact(5)
120
递归每次调用都会引起新函数的开始
递归有本地值得副本,包括该值得参数
阶乘递归函数中:每次函数调用中的相关n值在中途的递归链暂时存储,并在函数返回时使用
5!的递归调用过程图
本文内容由小思整理编辑!