#G6003. 汉诺塔问题
汉诺塔问题
Description
给定三根柱子,初始状态下,最左边上有若干个圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到中间杆上,且必须保持原有顺序不变。在移动过程中,需要遵守以下规则:
1、 只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。
2、 每次只能移动一个圆盘。
3、 小圆盘必须始终在大圆盘之上。
这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以 64 个盘的移动次数是:18,446,744,073,709,551,615 这已经是一个天文数字,假定圆盘从小到大编号为 1, 2, ...n(n<20),请你模拟下圆盘的移动过程。
Input Format
输入为一个整数(小于20)后面跟三个单字符字符串。 整数为盘子的数目,后三个字符表示三个杆子的编号。
Output Format
输出每一步移动盘子的记录。一次移动一行。 每次移动的记录为例如 a->3->b 的形式,即把编号为3的盘子从a杆移至b杆。
2 a b c
a->1->c
a->2->b
c->1->b