| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1346 人关注过本帖
标题:[讨论]函数的递归调用问题?
只看楼主 加入收藏
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 

呵呵,谢谢大家!看来想学好递归原理,还得多做些题!


偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2007-10-29 13:12
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我一直认为不理解递归的时候就全部拓展开来.
每一条语句都写出来,这样就看的出来了.如果数太大就代个小点的.

倚天照海花无数,流水高山心自知。
2007-10-29 13:18
neufcl
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-10-23
收藏
得分:0 
以下是引用缘吇弹在2007-10-29 1:25:38的发言:

一共递归调用了3次.
工作过程可看成这样:
1. 当fun(6)时,满足(x/2>0) 调用fun(x/2)也就是调用fun(3) //注意,满足条件(x/2>0)执行fun(3),要等执行了fun(3)才执行fun(6)的printf语句;
2.执行fun(3)时,也满足(x/2>0) 调用fun(x/2)也就是调用fun(1) //注意,满足条件(x/2>0)执行fun(1),要等执行了fun(1)才执行fun(3)的printf语句;
3.执行fun(1)时,不满足(x/2>0),就跳到下边执行printf("%d",x);
所以执行顺序为:
fun(1)的x=1;
fun(3)的x=3;
fun(6)的x=6;
故输出136


学好C++
2007-10-29 13:19
Palepast
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-10-15
收藏
得分:0 

老是不理解递归^ 关键是不清楚调用一次是什么时候结束  感觉它是只要调用了 就用到最后 不知道哪该停 输出结果....

2007-10-29 14:10
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

倚天照海花无数,流水高山心自知。
2007-10-29 14:14
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
15楼讲的蛮详细滴,谢谢了

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2007-10-29 22:36
编辑01
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-9-28
收藏
得分:0 
编程中国原创计划及声明
  • 严肃性
    不求文章要写的多么经典,但一定要是自己的原创。求助、转载、广告等其他类型帖子冒充原创者,视用户等级禁言一段时间或封ID。

  • 本站首发
    原创帖必须是本站首发,在其他站点发布以后在本论坛发布的,我们拒绝承认为原创,一律视为转载。

  • 鼓励原创
    原创帖在发布以后,管理员通过网上划词搜索辨别是否为原创,如确定为原创,只要文章不是过于简陋就会推荐为本版精华,优秀的同时收录至本站技术教程频道。
2007-10-30 09:28
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
任何一个递归过程都可以转换成非递归过程。?
应该是对的吧?

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-10-30 10:30
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2007-10-30 12:51
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
递归函数的实现使用的机制和其他的函数调用是一样的。每个调用创建一个新的栈帧,以便能这层函数执行断点下面的程序片段。这个栈包含了用于调用的局部变量。因为计算机为每个函数调用创建一个单独的栈,所以在递归分解的每一层上的局部变量是独立的。x作为局部变量,在每一层上的值分别为1,3,6(按递归函数返回的顺序)

英者自知,雄者自胜
2007-10-30 13:28
快速回复:[讨论]函数的递归调用问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012539 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved