编程题:C程序设计实验3-2:递归法求Hanoi塔输出
题目描述:递归方法进行Hanoi塔问题求解,这里要求输入Hanoi塔层数n,输出盘子移动步骤。
汉诺塔问题:有三根杆子X,Y,Z。X杆上有n个(1<=n<=10)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至Z杆:每次只能移动一个圆盘,大盘不能叠在小盘上面。求解步骤可参照下图:

### 输入格式:
输入为一个正整数n为盘子数目,且$1<=n<=10$。
### 输出格式:
输出每一步移动盘子的记录。一次移动一行。
每次移动的记录为例如3:X->Y 的形式,即把编号为3的盘子从X杆移至Y杆。
我们约定圆盘从小到大编号为1, 2, ...n。即最上面那个最小的圆盘编号为1,最下面最大的圆盘编号为n。
### 输入样例:
在这里给出一组输入。例如:
in
3
### 输出样例:
在这里给出相应的输出。例如:
out
1:X->Z
2:X->Y
1:Z->Y
3:X->Z
1:Y->X
2:Y->Z
1:X->Z
### 输入样例:
在这里给出一组输入。例如:
in
0
### 输出样例:
在这里给出相应的输出。例如:
out
Wrong Input.
答案:若无答案欢迎评论
汉诺塔问题:有三根杆子X,Y,Z。X杆上有n个(1<=n<=10)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至Z杆:每次只能移动一个圆盘,大盘不能叠在小盘上面。求解步骤可参照下图:

### 输入格式:
输入为一个正整数n为盘子数目,且$1<=n<=10$。
### 输出格式:
输出每一步移动盘子的记录。一次移动一行。
每次移动的记录为例如3:X->Y 的形式,即把编号为3的盘子从X杆移至Y杆。
我们约定圆盘从小到大编号为1, 2, ...n。即最上面那个最小的圆盘编号为1,最下面最大的圆盘编号为n。
### 输入样例:
在这里给出一组输入。例如:
in
3
### 输出样例:
在这里给出相应的输出。例如:
out
1:X->Z
2:X->Y
1:Z->Y
3:X->Z
1:Y->X
2:Y->Z
1:X->Z
### 输入样例:
在这里给出一组输入。例如:
in
0
### 输出样例:
在这里给出相应的输出。例如:
out
Wrong Input.
答案:若无答案欢迎评论