#DG01. 汉诺塔
汉诺塔
题目描述
相传在印度的古老传说中,大梵天(创造之神)创造世界的时候做了三根金刚石柱子,其中一根柱子从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。传说当所有圆盘都移动完时,世界就会毁灭。
后来传说演变成了汉诺塔游戏,给定三根柱子,分别记作 。初始在柱子 上套着 个圆盘,它们按照从小到大的顺序排列。我们的任务是将 个圆盘移到柱子 上,并保持它们的原有顺序。
在移动圆盘的过程中,需要遵守以下规则:
1.圆盘只能从一个柱子顶部拿出,从另一根柱子顶部放入;
2.每次只能移动一个圆盘;
3.小圆盘必须时刻位于大圆盘之上。
请你输出 个圆盘的最少移动次数 和移动过程。
输入格式
一个正整数 。
输出格式
共 行。
前 行,每一行为一次移动记录,例如将 上方的圆盘移动到 写作A to B
。
第 为最少的移动次数,即 。
1
A to C
1
3
A to C
A to B
C to B
A to C
B to A
B to C
A to C
7
1