#include<bits/stdc++.h>
using namespace std;
void move(char x,char y)
{
printf("%c->%c\n",x,y);
}
void deal(int n,char cur,char mid,char ter)
{
if (n==1) move(cur,ter);
else
{
deal(n-1,cur,ter,mid);//把n-1个盘借助ter移动到mid
move(cur,ter);//将剩下的一个盘移动到ter
deal(n-1,mid,cur,ter);//将在mid上的n-1个盘借助cur移动到ter
}
}//相当于模拟移动过程,并用递归的方法实现
int main()
{
int n;
cin>>n;
deal(n,'A','B','C');
return 0;
}
#C++关于汉诺塔问题的解析
最新推荐文章于 2024-07-21 11:20:00 发布