原题:用递归算法求完成n阶Hanoi的移动。
#include<iostream.h>
int main()
{
void Hanoi(int n,char x,char y,char z);
int n;
cout<<"请输入圆盘数:"<<endl;
cin>>n;
Hanoi(n,'A','B','C');
cout<<endl<<endl;
return 1;
}
void Hanoi(int n,char x,char y,char z)
{//将x上编号为1至n-1的盘子移到塔座z上,塔座y可用作辅助塔
if(n>0)
{
//将x上编号为1至n-1的圆盘移到y,z作辅助塔
Hanoi(n-1,x,z,y);
//将编号为n的圆盘从x移到z
cout<<endl<<n<<":"<<x<<"-->"<<z;
//将y上编号为1至n-1的圆盘移到x,x作辅助塔
Hanoi(n-1,y,x,z);
}
}