一:将n-1个盘子由A经过C移动到B;
二:将第n个盘子移到C;
三:将余下n-1个盘子通过A移到B;
#include <bits/stdc++.h>
using namespace std;
int k=0;
move(char A,char B){
cout<<"step"<<++k<<":"<<A<<"---->"<<B<<endl;
}
void hanoi(int n, char A, char B, char C) {
if (n == 1) {
move(A, C);
} else {
hanoi(n - 1, A, C, B);//将n-1个盘子由A经过C移动到B
move(A, C); //执行最大盘子n移动
hanoi(n - 1, B, A, C);//剩下的n-1盘子,由B经过A移动到C
}
}
int main(){
int n;
cin>>n;
hanoi(n,'A','B','C');
return 0;
}