鱼C论坛

 找回密码
 立即注册
查看: 4258|回复: 7

递归不理解

[复制链接]
发表于 2011-5-3 20:46:08 | 显示全部楼层 |阅读模式

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

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

x
请高手指点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-3 21:42:29 | 显示全部楼层
本帖最后由 LNH_Sniper 于 2011-5-3 21:43 编辑

我只能说,实现递归调用,需要满足下面的条件。
第一、 每个递归函数都必须有一个非递归定义的初始值
第二、在设计递归算法时,要解决的问题需具有递归性。
第三、递归往往是与分治一同运用的。

最后 递归的缺点:
    时间和空间复杂度较高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-5-3 22:22:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 07:47:56 | 显示全部楼层
本帖最后由 小飞侠 于 2011-5-4 07:48 编辑

递归分两部分,之前的有点像函数嵌套,一层层进入。只是返回时很特别,不过和函数调用也很像(返回调用点),一层层返回,直至最上层。

QQ截图未命名.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 17:33:14 | 显示全部楼层
其实说白了就是自己在无限的调用自己,然后有个条件判断一下,如果不满足的话就继续调用,如果满足的话就停止跳出了。那个递归的阶乘跟汉诺塔是挺典型的两个习题,把这个搞明白了就查不多了的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-4 19:01:14 | 显示全部楼层
这个例子不明白
long recursion(int n)      //譬如说这里传进来个  6
{
         long temp_result;
         if( n < 0)
         {
           printf("n<0,input error!\n");
         }
         else if(n==0 || n==1)
         {
             temp_result=1;
         }
          else
      {
             temp_result=recursion(n-1)*n;//这里我都调试了好多遍,计算过程和返回过
          }                                                       程,不理解。能详细点就好了。
          return temp_result;
}   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 20:10:46 | 显示全部楼层
本帖最后由 风扫地 于 2011-5-4 20:15 编辑

http://bbs.fishc.com/forum.php?m ... &extra=page%3D6
..看这个无返回值的例子吧。。。那张图我很辛苦画的。可惜那个楼主再没来过了。。。

冷。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-4 21:00:03 | 显示全部楼层
回复 风扫地 的帖子

哥呀!真是辛苦你了。我替那个楼主先谢谢你了。
我得仔细的研究,以免枉费你一片苦心。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 04:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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