采用递归的方法,将n-1个盘从第一座借助第三座移到第二座
将第n个盘从第一座移到第三座
将n-1个盘从第二座借助第一座移到第三座
#include<iostream>
using namespace std;int main()
{
void hanoi(int n,char one,char two,char three);
int m;
cout<<"input the number of disks:"<<endl;
cin>>m;
cout<<"the steps of moving"<<m<<"disks:"<<endl;
hanoi(m,'A','B','C');
return 0;
}
void hanoi(int n,char one,char two,char three)
//将n个盘从one座借助two座移到three
{
void move(char x,char y);
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y)
{
cout<<x<<"-->"<<y<<endl;
}