采用递归的思想来做这个问题很是简单
递归出口为:如果A上就有一个盘子,那么直接把A放到C上,然后退出。
如果有多个盘子,先将A移动到B,再从B移动到C。
#include <iostream>
using namespace std;
void Hanoi(int n,char A,char B,char C){
if(n<=1){
cout<<A<<“->”<<C<<endl;
return;
}
Hanoi(n-1,A,C,B);
cout<<A<<“->”<<C<<endl;
Hanoi(n-1,B,A,C);
return ;
}
int main()
{
int n;
cin >> n;
Hanoi(n,’A’,’B’,’C’);
return 0;
}