递归:
1.借助第三个木桩,将n-1个圆盘从第一个木桩移动到第二个木桩
2.将最后一个圆盘(即最大的圆盘)从第一个木桩移动到第三个木桩
3.借助第一个木桩,将n-1个圆盘从第二个木桩移动到第三个木桩
#include<iostream>
using namespace std;
void move(char one,char anoth)
{
cout<<one<<"移动到"<<anoth<<endl;
}
void hanoi(int n,char no1,char no2,char no3)
{
if (n==1) move(no1,no3);
else
{
hanoi(n-1,no1,no3,no2);
move(no1,no3);
hanoi(n-1,no2,no1,no3);
}
}
void main()
{
void hanoi(int n,char no1,char no2,char no3);
int m;
cout<<"请输入A柱上的金盘子总数:";
cin>>m;
cout<<"当有"<<m<<"个金盘子时,移动步骤依次为:"<<endl;
hanoi(m,'A','B','C');
}