【题目描述】
有三座塔A,B,C,开始时A上有n个盘子,盘子大小不等,大在下小在上。要将盘子从A座移到C座,每次只能移一个,并且在移动的过程中始终保持大在下小在上。
输入盘子的数量n,输出移动的步骤。
(提示:利用递归完成)
【输入格式】
一行一个整数 n
【输出格式】
输出若干行表示每次移动的步骤
【样例输入】
2
【样例输出】
A to B
A to C
B to C
#include<iostream>
using namespace std;
void f(int n,char A,char B,char C){
if(n==1){
cout<<A<<" to "<<C<<endl;
}else{
f(n-1,A,C,B);
cout<<A<<" to "<<C<<endl;
f(n-1,B,A,C);
}
}
int main(){
int n;
char X,Y,Z;
X='A';
Y='B';
Z='C';
cin>>n;
f(n,X,Y,Z);
}