用递归算法求完成n阶Hanoi的移动

原题:用递归算法求完成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);
	}
}


 

你可能感兴趣的:(算法,递归,汉诺塔,hanoi)