#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
void fact(int n,char a,char b,char c);
fact(n,'A','B','C');
return 0;
}
void fact(int n,char a,char b,char c)
{
if(n==1)
cout<<"Move disk "<<n<<" from "<<a<<" to "<<c<<endl; //只有一个的时候
else
{
fact(n-1,a,c,b); //第一步:将前n-1个圆盘通过中间棒c移动到b上
cout<<"Move disk "<<n<<" from "<<a<<" to "<<c<<endl; //第二步:将最后一个圆盘移动到c上
fact(n-1,b,a,c); //第三步:将前n-1个圆盘再通过中间棒a移动到c上
}
}
思路就是代码中的三部分了,更具体的原因不知道,只能理解到这里了。