#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;
}
(递归)汉诺塔
最新推荐文章于 2024-08-29 17:07:54 发布
