解决汉诺塔问题其实只需要递归思想就可以了。
#include<iostream>
using namespace std;
int step=0;
void move(int n,char A,char B,char C){
if(n==1){step++;}
else{
move(n-1,A,C,B);//将上面的n-1个盘子从A借助C移到B
step++;//将第n个盘子从A移到C
move(n-1,B,A,C);//再将上面的n-1个盘子从B借助A移到C
}
}
int main(){
int n;
cout<<"请输入n:"<<endl;
cin>>n;
move(n,'A','B','C');
cout<<step<<endl;
return 0;
}