首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

汉诺塔递归有关问题,希望有人帮小弟我解答

2013-08-29 
汉诺塔递归问题,希望有人帮我解答为什么当n-11的时候,函数参数变成了H(1,A,B,C),传入的不还是A,C,B么。求

汉诺塔递归问题,希望有人帮我解答
汉诺塔递归有关问题,希望有人帮小弟我解答
为什么当n-1=1的时候,函数参数变成了H(1,A,B,C),传入的不还是A,C,B么。求讲解,
就这一点递归没看明白,谁能讲解一下感激不尽。 递归 C 算法
[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

[解决办法]

不是三言两语就能说的清楚的!

看看这里吧,详细介绍
汉诺塔算法 
[解决办法]
别看那个图,没看到递归函数中有2次递归么,那个图只有1次。
自己简单的做个实验就行了。
假设有3个硬币,从A要移动到C
第一步: 把 上面2个硬币从A移动到B,用C做中转( 递归 n-1, A B C)
第二步: 把 3移动到C                                         (打印 n:A-->C)
第三步: 把B上的2个硬币从B移动到C,用A中转    (递归 n-1, B C A)
很简单吧。
注意递归的结束条件。

热点排行