双层汉诺塔

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 8 总提交人数: 9

题目描述

想必,前面的汉诺塔对于大家来说,just a piece of cake!

我们来玩一个更高级的汉诺塔游戏——双层汉诺塔。双层汉诺塔游戏中,相同大小的盘都有颜色不同的两片,按照次序放在最左边的金刚柱上。 游戏的目的是把不同颜色的盘分别按照上小下大的顺序放在中间和右边的两个柱子上。在移动过程中,在移动过程中, 依旧是遵守大盘必须在小盘之下,而颜色顺序无限制。

下面给出的四个盘子的例子,当然,这个图片是不完整的,还需要把左边粉红色的盘子移到最右边的柱子上,把黄色的盘子移动到中间的柱子上。

输入

第一行输入一个整数t(t < 10),表示测试的组数。
接下来的t行,每行输入一个正偶数n(0 <n<=20),表示盘子的个数。

输出

对于每组测试数据,首先输出一行Case #X:,表示第X组测试数据。 接下来,每行都输出移动盘子的步骤,对于每次移动,以"Move from X to Y"表示,表示需要将X柱子上最顶层的盘子移动到Y柱子上,其中X,Y是A,B,C中的一个,当然,X和Y不可能相同

输入样例

2
2
4

输出样例

Case #1:
Move from A to B
Move from A to C
Case #2:
Move from A to C  
Move from A to C  
Move from A to B  
Move from A to B  
Move from C to A  
Move from C to A  
Move from B to C  
Move from A to B  
Move from A to C  

相关推荐