#2002. 汉诺塔问题
汉诺塔问题
题目描述
给定三根柱子,初始状态下,最左边柱子上有若干个圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到中间柱子上,且必须保持原有顺序不变。移动过程中需要遵守以下规则:
- 只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。
- 每次只能移动一个圆盘。
- 小圆盘必须始终在大圆盘之上。
圆盘从小到大编号为 1,2,...,n(n<20),请模拟圆盘的移动过程。
输入格式
输入为一个整数 n(1≤n<20),后面跟三个单字符字符串,分别表示三根柱子的编号。第一个字符为初始柱子,第二个字符为目标柱子,第三个字符为辅助柱子。
输出格式
输出每一步移动盘子的记录。一次移动一行。每次移动的记录格式为 a->3->c,即把编号为 3 的盘子从 a 杆移到 c 杆。
样例输入
2 a b c
样例输出
a->1->c
a->2->b
c->1->b
数据范围
1≤n<20,三根柱子的编号为互不相同的单字符。