鱼C论坛

 找回密码
 立即注册
查看: 2762|回复: 6

求助关于递归的问题

[复制链接]
发表于 2013-11-17 18:24:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

代码在下面
2.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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);
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-17 18:33:49 | 显示全部楼层
这个是课本上的汉诺塔的代码吧
就是介绍递归的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-17 18:35:39 | 显示全部楼层
这个主要讲的分而治之法,就是讲把N个盘子看成是3个盘子按照一定规则,从A移到B
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-17 19:07:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-17 19:25:22 | 显示全部楼层
楼主吧程序中的N当成是2 模拟一遍程序的具体的实现,可以看到程序里面的A, B, C的变换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-18 20:52:45 | 显示全部楼层
好无聊的叠盘子游戏:mad:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表