代码实现:
#include<stdio.h>
void HanoiTower(char A, char B, char C, int n)
{
if (n == 1)
{
printf("把第%d个圆盘从%c--->%c\n", n, A, C);
}
else
{
//将n-1个圆盘从A柱借助于C柱移动到B柱上
HanoiTower(A, C, B, n - 1);
//将A柱子最后一个圆盘移动到C柱上
printf("把第%d个圆盘从%c--->%c\n", n, A, C);
//将n-1个圆盘从B柱借助于A柱移动到C柱上
HanoiTower(B, A, C, n - 1);
}
}
int main()
{
int n = 0;
printf("输入A柱子上的圆盘个数:");
scanf("%d", &n);
//将n个圆盘从A柱借助于B柱移动到C柱上
HanoiTower('A', 'B', 'C', n);
return 0;
}
运行截图:
![](https://i-blog.csdnimg.cn/blog_migrate/9299a23324e88ade948576cb0f6ae2af.png)