汉诺塔问题
题目:开始时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 移到Bif(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 移到Breturn 0;
}