汉诺塔问题(Towers of Hanoi)
2017-09-15 14:48
211 查看
汉诺塔问题的思维方式很重要,正向和逆向都很容易绕晕,要从中间开始展开
显而易见,如图所示的情况是移动过程中必须的一步,而问题就可以分解为前半部分:如何将
显而易见,如图所示的情况是移动过程中必须的一步,而问题就可以分解为前半部分:如何将
k-1个盘子从
A->B及后半部分:如何将
k-1个盘子从
B->C,这两个问题本质上又是一样的。根据归纳法,
k个盘子的移动可以通过
k-1个盘子的移动解决,故使用递归算法。
void hanoi(int n, char A, char B, char C) { if(n == 1) //递归到n = 1时终止 printf("Move sheet %d from %c to %c\n", n, A, C); else { hanoi(n-1, A, C, B); //前半部分 printf("Move sheet %d from %c to %c\n", n, A, C); hanoi(n-1, B, A, C); //后半部分 } }
相关文章推荐
- 汉诺塔(Towers of Hanoi)问题
- Acdream 1219 The Towers of Hanoi Revisited(递归汉诺塔问题)
- [CareerCup] 3.4 Towers of Hanoi 汉诺塔
- Tower of Hanoi (汉诺塔问题)
- POJ 1958 Strange Towers of Hanoi (四塔问题,线性dp,记忆化搜索)
- HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
- HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
- tower of hanoi(汉诺塔)问题 按步骤分析--取自《严蔚敏·数据结构》 P55
- 汉诺塔(TowerofHanoi)问题--java
- ZOJ-2338 The Towers of Hanoi Revisited 输出汉诺塔的最优解移动过程
- The Tower of Hanoi(汉诺塔)问题深入研究
- 汉诺塔(Tower of Hanoi)问题的求解——利用栈与递归
- Strange Towers of Hanoi(DP,汉诺塔)
- The Towers of Hanoi Revisited---(多柱汉诺塔)
- python 汉诺塔问题(Tower of Hanoi Puzzle)
- c/c++ 算法之汉诺塔(河内之塔(Towers of Hanoi))
- Java实例6 - 汉诺塔问题 Hanoi
- 递归算法之Hanoi(汉诺塔)问题学习
- POJ-1958 Strange Towers of Hanoi(线性动规)
- 汉诺塔问题hanoi