汉诺塔游戏
描述
汉诺塔由编号为1到n且大小不同的圆盘和3根柱子a,b,c组成,编号越小,盘子越小。开始时,这n个圆盘由大到小依次套在a柱上,如图1.3所示。要求把a柱上n个圆盘按下述规则移到c柱上:
(1)一次只能移一个圆盘,它必须位于某个柱子的顶部,
(2)圆盘只能在三个柱子上存放。
(3)任何时刻不允许大盘压小盘。
将这n个盘子用最少移动次数从a柱移动到c柱上,输出每一步的移动方法。
输入
只有1行,一个整数n(1<=n<=20),表示盘子的数量。
输出
输出若干行,每行的格式是:“步数.Move盘子编号from源柱to目标柱”
输入样例 1
3
输出样例 1
1. Move 1 from a to c 2. Move 2 from a to b 3. Move 1 from c to b 4. Move 3 from a to c 5. Move 1 from b to a 6. Move 2 from b to c 7. Move 1 from a to c
提示
分析提示:
如何移动才能使得移动次数最少,考虑1到n这n个盘子哪个盘子先移到c盘的目标位置?显然是n