![](https://img-blog.csdnimg.cn/img_convert/531b878213b50d3f1334fbd724ad7aa6.png)
输入格式:
输入在一行中给出1个正整数n。从左到右依次为a, b, c 柱
输出格式:
输出搬动盘子过程。No.1 表示最小的原盘,No.n 表示最大的圆盘。a->b表示从a移动到b
![](https://img-blog.csdnimg.cn/img_convert/8e660b50f3cffd300983eb468c117236.png)
#include <bits/stdc++.h>
using namespace std;
void hannuo(int n,char cur,char tool,char goal)//想要移动的圆盘序号,当前柱、工具柱、目标柱
{
if(n==0)return;
hannuo(n-1,cur,goal,tool);//想要移动 n圆盘到目标柱,首先要将上边的n - 1个圆盘移动到工具柱
cout<<"No."<<n<<" "<<"disk: "<<cur<<"->"<<goal<<endl;
//移动好n圆盘后,此时其余n - 1个圆盘在工具柱上,将当前柱作为新的工具柱移动到目标柱上去
hannuo(n-1,tool,cur,goal);
}
int main()
{
int n;
cin>>n;
//从最大的圆盘开始移动
hannuo(n,'a','b','c');//初始化 a b c 柱的名称
return 0;
}