标题:请问递归函数是怎样看的?
只看楼主
h5n1234
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-9-16
 问题点数:0 回复次数:7 
请问递归函数是怎样看的?
long fact(int n)
{
if(n==1)
return 1;
return fact(n-1)*n; //出现函数自调用
}



请问是怎样自调用的???
我看不明白~!!!!
搜索更多相关主题的帖子: 递归 函数 
2006-09-28 13:17
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
得分:0 
一层层地返回,直到最后满足出口的条件,这里是if(n==1)

Viva,espana!
2006-09-28 16:43
majia775
Rank: 1
等 级:新手上路
威 望:2
帖 子:94
专家分:0
注 册:2006-9-11
得分:0 
[CODE]long fact(int n)
{
if(n==1) return 1;
return fact(n-1)*n; //出现函数自调用
}
/*
如果n传进来的时候等于5:
那么: 先执行if(n==1),不等于,就ruturn fact(n-1)*n;
此时n=4,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=3,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=2,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=1,在执行if(n==1),n已经是1了,就return 1;
*/

[/CODE]

我不是随便的人,我随便起来不是人.... http://majia775.
2006-09-28 18:32
jiang520
Rank: 1
等 级:新手上路
帖 子:207
专家分:0
注 册:2006-9-13
得分:0 

程序代码:

long fact(int n)
{
if(n==1) return 1;
return fact(n-1)*n; //出现函数自调用
}
/*
如果n传进来的时候等于5:
那么: 先执行if(n==1),不等于,就ruturn fact(n-1)*n;
此时n=4,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=3,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=2,在执行if(n==1),不等于,就return fact(n-1)*n;
此时n=1,在执行if(n==1),n已经是1了,就return 1;
*/

这种要靠多意会,光是这样是不行的,递归本来要去深深理解才行~!


努力,努力吧,未来的天空,那一片湛蓝总会属于我的~
2006-10-09 14:57
qiuhai1985
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-9
得分:0 

同上


编织美好得未来!!! COME ON SEA!!!
2006-10-10 15:47
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
得分:0 

递归其实就是一函数调用的问题,说的更确切点就是堆栈的问题.

用递归实现对一数组的倒序输出就是一个很好的例子,可以写一个这样的函数,
自己理解一下.


我为你痴,为你狂!
2006-10-11 23:39
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
你就见到函数调用,知道参数就接着调用函数不就得了
想那么多干什么,这样你就懂了

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-12 06:47
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
得分:0 

层层返回


Viva,espana!
2006-10-20 09:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-93485-1-1.html




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

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