题目:开始时A座上有n个盘子,大的在下,小的在上。3个基座上始终保持大盘在下,小盘在上,现需把n个盘子从A座移到B座,通过C座辅助。
思路:递归。
代码:
#include<iostream>
using namespace std;
//将n个盘子从A座移动到B座
void move(char a,char b){
cout<<a<<"->"<<b<<endl;
}
void hanoi(int n,char A,char B,char C){//将A座的n个盘子 通过C 移到B
if(n==1){
move(A,B);
return;
}
hanoi(n-1,A,C,B);
move(A,B);
hanoi(n-1,C,B,A);
}
int main(){
int n;
cin>>n;
hanoi(n,'A','B','C');//将A座的n个盘子 通过C 移到B
return 0;
}