#include<iomanip>
#include<iostream>
using namespace std;
int count=0;
void move(int n, char one, char three)
{
cout<<"把第"<<setw(3)<<n<<"
个盘子从 "<<one<<" 塔上"<<"移至 "<<three<<" 塔"<<endl;
count=count+1;
}
void Hanoi(int n,char one,char two,char three)
//将n个盘子从one柱移至three柱(借助two柱)
{
if(n==1)
{
move(1,one,three);
}
else
{
Hanoi(n-1,one,three,two);
move(n,one,three);
Hanoi(n-1,two,one,three);
}
}
void main()
{
int n;
cout<<"请输入盘子的个数: ";
cin>>n;
Hanoi(n,'A','B','C');
cout<<"\n\n\t。。。总共需要 "<<count<<" 步方能够完成任务。。。"<<endl;
}