提示:以下是本篇文章正文内容,下面案例可供参考
一、汉诺塔是什么?
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
二、思路分析
三层汉诺塔的解答思路:第一轮先把x和y通过C柱都堆叠到B柱上
第二轮把z从A柱移动到C柱上
第三轮把x和y通过A柱移动到C柱子上,完成汉诺塔的三层问题。
通过三层的汉诺塔问题,也可以解决n层的汉诺塔问题。
如果在A柱上有n层,那么可以先把上面的n-1层当作一个整体x,而在上面n-1层的整体中,又可以将最下一格和上面的n-2格分为2个整体,通过递归的思想,先将问题层层”递“上去,最后变成了最上面的一层和最上面的第二层两个整体,于是第一层开始动,接着把”递“上去的问题再一层一层”归“下来,将上面n-1层通过C柱,转移到B柱,即完成了汉诺塔问题的第一轮,于是A柱中的第n层可以移动到C柱子,即完成了汉诺塔问题的第二轮,最后则是把原本上面的n-1层通过A柱转移到C柱,完成汉诺塔问题的第三轮。至此,程序结束。
以下为代码实现:
int main()
{
int