#2002. 汉诺塔问题

汉诺塔问题

题目描述

给定三根柱子,初始状态下,最左边柱子上有若干个圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到中间柱子上,且必须保持原有顺序不变。移动过程中需要遵守以下规则:

  1. 只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。
  2. 每次只能移动一个圆盘。
  3. 小圆盘必须始终在大圆盘之上。

圆盘从小到大编号为 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,三根柱子的编号为互不相同的单字符。