#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 发布