所以这里的hanoi函数就有了执行的内容:printf
下面以3个盘子为例进行模拟计算机的执行过程:
1、hanoi(3,A,B,C) , 开始了这步,进入第一层函数,计算机在函数中会进行自我的再次调用(第7行代码)
2、(第7行):hanoi(2,A,C,B) , 于是这又是一个新的hanoi函数,这里我把它成为第二层函数
同样执行到第7行 , 卡住了,再次一次自我的调用
3、(进入第三层函数):hanoi(1,A,B,C),这里的第三层n=1,所以在第四行就显示出了"A-C" , 至此,第三层函数结束 , 回到调用他的第二层函数
4、在第二层当中,继续第8行的内容,所以显示出"A-B",继续运行,到第9行 , 开始了有一次自我调用
5、把她称为贰号第三层函数吧 。。。hanoi(1,B,A,C),和第3步类似,这一层函数显示出了"B-C",然后结束函数,返回调用它的第二层函数
6、第二层函数执行完毕,返回调用它的第一层函数
7、第一层函数中执行到第8行,显示出"A-C",然后执行第9行:hanoi(2,B,A,C)
............
如果看到了这里理清楚了关系就会懂啦 , 接下来还有一半,如果都写下来就太复杂了- 。-
你所说的空函数是指没有返回值,但是这里利用的是电脑调用函数的那种关系来解决的问题 , 比如上面的3步,会自动返回到第二层函数并继续
还可以这样理解汉诺塔,汉诺塔其实是将复杂的问题简单化,
先不管他有多少个盘子从A到C,我只把它视作3步
就像上面那样找个例子,反复的按照代码模拟计算机运行,过个五次六次,就会懂啦
关于c语言先定义函数的汉诺塔和先定义函数求,然后在主程序中的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 直播伴侣ios系统,直播伴侣下载了怎么不能用
- sqlserver临时表用途,sql server临时表作用
- 怎么修改台式电脑硬盘顺序,怎么更改电脑硬盘顺序
- 冒险绅士rpg游戏,绅士冒险 单机
- 包含mysql怎么存text的词条
- cad2010未安装net,cad2010未安装,您可以在
- ios能用安卓的应用吗,ios能用安卓的应用吗
- python爬虫在哪里下载,python app爬虫教程
- c语言库函数比较大小 c语言比较大小的代码