巫山老鬼 发表于 2020-2-26 20:44:14

c语言 搞不懂的递归(汉诺塔)。

刚刚看了甲鱼的c语言视频
就是搞不懂那个汉诺塔。

主要hanoi这个函数想不懂。
求大佬教教小弟吧!!!

        #include<stdio.h>

int main()
        {
                void hanoi(int n,char one,char two,char three);
               
                int m;
               
                printf("input the number of diske:");
               
                scanf("%d",&m);
               
                printf("the stpe to moveing %d diskes:\n",m);
               
                hanoi(m,'a','b','c');
               
               
               
        }
       
        void hanoi(int n,char one,char two,char three)
                {
                        void move(char x,char y);
                       
                        if(n==1)move(one,three);
                       
                                else
                                {
                                        hanoi(n-1,one,three,two);
                                       
                                        move(one,three);
                                       
                                        hanoi(n-1,two,one,three);
                                }
                       
                       
                }
               
                void move(char x,char y)
                        {
                                printf("%c-->%c\n",x,y);
                               
                        }

zltzlt 发表于 2020-2-26 20:46:18

https://fishc.com.cn/thread-154096-1-1.html
页: [1]
查看完整版本: c语言 搞不懂的递归(汉诺塔)。