#C08L06P05. C08.L06.递归基础与递归算法.程序填空4.移梵塔
C08.L06.递归基础与递归算法.程序填空4.移梵塔
题目描述
有三根柱 A、B、C,在 A 柱上有 n 块盘片,所有盘片都是大片在下面,小片放在大片上面。并依次编好序号。
现要将 A 上的 n 块盘片移到 C 柱上,每次只能移动一片,而且在同一根柱子上必须保持上面的盘片比下面的盘片小,请输出移动方法。
输入格式
仅一个整数 n(n ≤ 20),表示 A 柱上的盘片数。
输出格式
输出盘片的移动步骤。
样例
3
A-1-C
A-2-B
C-1-B
A-3-C
B-1-A
B-2-C
A-1-C
程序填空
#include <iostream>
using namespace std;
void Move(int n,char First, char Inter, char Last)
{
if(n==1)
printf("%c-%d-%c\n",填空(1),n,填空(2));
else
{
Move( 填空(3) , 填空(4) ,填空(5) , 填空(6) );
printf("%c-%d-%c\n",First,n,Last);
Move(n-1,Inter,First,Last);
}
}
int main()
{
int n;
cin>>n;
Move(n,'A','B','C');
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
填空(4):{{ input(4) }}
填空(5):{{ input(5) }}
填空(6):{{ input(6) }}
相关
在以下作业中: