汉若塔问题

来源:互联网 发布:kuka编程手册 编辑:程序博客网 时间:2024/06/06 01:52
#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    }}


0 0
原创粉丝点击