您的位置:首页 > 其它

(递归)汉诺塔

2013-10-29 22:20 225 查看
#include <iostream>
using namespace std;

/*
假定盘子的数目为n,为把最大的盘子放到y上,需要先把上面的n-1个移动到
z上,然后把z上的都移动到y上
*/
int iCount = 0;
void Hanoi(int n,char x,char y,char z)
{
if(n)
{
Hanoi(n-1,x,z,y);				//x上n-1个移动到z上
cout<<"第"<<++iCount<<"步: "<<x<<" -> "<<y<<endl;		//把最大的移动到y上
Hanoi(n-1,z,y,x);				//把z上的n-1个移动到y上
}
}
int main()
{
Hanoi(5,'x','y','z');
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: