标题:如何理解递归调用?
取消只看楼主
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
结帖率:80%
 问题点数:0 回复次数:2 
如何理解递归调用?
要如何理解递归调用呢?
如下面的题:
main()
{
int a,b;
long power(),t;
clrscr();
printf("输入两个整数:");
scanf("%d,%d",&a,&b);
t=power(a,b);
printf("%d^%d=%ld",a,b,t);
}
long power(x,n)
int x,n;
{
long y;
if(n>0)
 y=x*power(x,n-1);
else y=1;
return y;
}

红色部分不是很能理解..
只知道当n=0的时候,y=1;
然后返回...
但是返回的时候就不知道要怎么处理了.

还有请各位大虾帮忙解答下...
先谢过了...
搜索更多相关主题的帖子: 递归 long power int 
2007-12-04 20:18
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
得分:0 
我也知道是自己调用自己...
主要是下面的当n=0时.也就是不成立的时候.....
为什么返回后是y=x*power(x,n-1);?
这道题是求一个数的n次方.
例如:
x=3;n=4;
当n=0的时候。y就等于1;
返回后为什么是这样的:
y=x*power(x,n-1)=3;
y=x*power(x,n-1)=9;
y=x*power(x,n-1)=27;
y=x*power(x,n-1)=81;
我想知道的是这样的..
2007-12-05 12:39
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
得分:0 
谢谢楼上的回答...
特别的感谢死了都要C...
看起来简单易懂..
2007-12-22 17:28



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




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

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