#include<bits/stdc++.h>
using namespace std;
int step=0;
void Hanoi(int n,char a,char b,char c)//a为起点,b为缓冲,c为终点
{
if(n==1)
{
if((step+1)%5==0)
{
cout<<a<<"-->"<<c<<endl;
}
else cout<<a<<"-->"<<c<<" ";
step++;
return;
}
Hanoi(n-1,a,c,b);//把n-1个盘子移动到缓冲区b
Hanoi(1,a,b,c);//把最大的1号盘子移动到终点
Hanoi(n-1,b,a,c);//把剩余n-1个盘子从b移动到c
}
int main()
{
int n;
while(cin>>n)
{
if(n==0) break;
step=0;
Hanoi(n,'A','B','C');
cout<<endl;
}
return 0;
}
例图:
最左边为1号盘子