#include <stdio.h>
//汉若塔问题问题,有A,B,C共3根柱子,要求将A柱子上的n个盘子搬到B柱子,其中大盘在下小盘在上,搬运过程中大盘不能压在小盘上。 输出搬运步骤。
int main()
{
int n;
char a='A',b='B',c='C';
void f(int n,char a,char b,char c);
scanf("%d",&n);
f(n,a,b,c);
return 0;
}
void f(int n,char a,char b,char c) //定义函数,使柱子A上的n个盘子搬到柱子B
{
if (n==1)
{
printf("%c-->%c\n",a,b); //当只剩最后一个盘子时,将其从柱子A搬到柱子B
}else
{
f(n-1,a,c,b); //将n-1的盘子从柱子A搬到柱子C
printf("%c-->%c\n",a,b); //将最下面的盘子从柱子A搬到柱子B
f(n-1,c,b,a); //将柱子C上的n-1个盘子搬到柱子B
}
}汉若塔问题
最新推荐文章于 2022-09-05 16:01:58 发布
本文介绍了一个使用C语言解决汉诺塔问题的程序。该程序通过递归方法实现了盘子从A柱子到B柱子的移动,并确保了在移动过程中始终遵循大盘在下小盘在上的规则。代码详细展示了如何输出每一步的移动过程。
919

被折叠的 条评论
为什么被折叠?



