购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5-5 递归调用与栈运作

本书程序ch1_1.py使用递归调用计算阶乘,笔者输入阶乘数 n=3 ,然后程序第10行调用 factorial(n) 函数,此时栈内存内容如下:

接着进入 factorial(3) 函数,此时 程序代码 栈内存 内容如下:

下列是第2次调用factorial(2)函数,此时 程序代码 栈内存 内容如下:

下列是第3次调用factorial(1)函数,此时 程序代码 栈内存 内容如下:

下列是返回的操作:

下列是再一次返回的操作:

所以程序实例ch1_1.py可以得到6的结果。在算法中有关递归调用与栈的应用仍有许多,本书未来还会有实例说明。

程序实例ch5_5.py: 这是ch1_1.py的改良,主要是在factorial( )函数内增加注释,读者可以从此函数看到递归调用的计算过程。

执行结果 wON0REbdM/14l+8pW5Mh/gimWNDve7Z+C+7m6CV+wISZNepFjXRrYu0eUO3j03+V

点击中间区域
呼出菜单
上一章
目录
下一章
×