#include <iostream>
using namespace std;
//移动盘子,从A到B
void Move(int n,char A,char B)
{
cout << "move " <<n<<" from "<<A<<" To " <<B<< endl;
}
//目的从A移动到B上去,过程中盘子要保持有序
void Hanoi(int n,char A,char B,char C)
{
if(n>0)
{
Hanoi(n-1,A,C,B);//把上面n-1个圆盘由A借助B,移动到C上去
Move(n,A,B);//移动第n个盘子从A到B上
Hanoi(n-1,C,B,A);//把n-1个盘子从C借用A移动到B上去
}
}
void main()
{
//三座塔的名字
char A = 'a';
char B = 'b';
char C = 'c';
//开始移动
Hanoi(3,A,B,C);
}
Hanoi塔问题_经典
最新推荐文章于 2021-01-19 05:49:00 发布