C语言鱼c 发表于 2013-11-17 18:24:13

求助关于递归的问题

本帖最后由 C语言鱼c 于 2013-11-17 18:26 编辑


代码在下面

C语言鱼c 发表于 2013-11-17 18:24:51


#include <stdio.h>

void main()
{
                void hanoi (int n, char one, char two, char three);
                /*对hanoi函数的声明*/
                int m;

                printf ("input the number of diskes : ");
                scanf ("%d", &m);
                printf ("The step to moveing %d diskes:\n", m);

                hanoi (m, 'A', 'B', 'C');
}

void hanoi (int n, char A, char B, char C)
/*定义hanoi函数,将n个盘从A座借助B座,移到C座*/
{
        void move (char x, char y);      /*对move函数的声明*/
       
        if (n == 1)
        {
                        move (A ,C);
        }
        else
        {
                        hanoi (n - 1, A, C, B);
                        move (A, C);
                        hanoi (n - 1, B, A, C);
        }
}
void move (char x, char y)      /*定义move函数*/
{
                printf ("%c --> %c\n", x, y);
}

☆﹎尐の潴猪 发表于 2013-11-17 18:33:49

这个是课本上的汉诺塔的代码吧
就是介绍递归的!

☆﹎尐の潴猪 发表于 2013-11-17 18:35:39

这个主要讲的分而治之法,就是讲把N个盘子看成是3个盘子按照一定规则,从A移到B

C语言鱼c 发表于 2013-11-17 19:07:42

☆﹎尐の潴猪 发表于 2013-11-17 18:35 static/image/common/back.gif
这个主要讲的分而治之法,就是讲把N个盘子看成是3个盘子按照一定规则,从A移到B


☆﹎尐の潴猪 发表于 2013-11-17 19:25:22

楼主吧程序中的N当成是2 模拟一遍程序的具体的实现,可以看到程序里面的A, B, C的变换

属専色灰 发表于 2013-11-18 20:52:45

好无聊的叠盘子游戏:mad:
页: [1]
查看完整版本: 求助关于递归的问题