c++的一个问题

doublefun(doublea,intn){doublesum1=1;if(n==0)sum1=1;if(n==1)sum1=a;elseif(n>1)sum1=fu... double fun(double a, int n)
{
double sum1 = 1;
if (n == 0)
sum1=1;
if (n == 1)
sum1 = a;
else if (n > 1)
sum1 = fun(a, n - 1) * a;
else
sum1 = 1 / fun(a, -n);
return sum1;
}

我想请问一下这个fun函数到底是什么
fun(a, n - 1) * a 难道这样就是 fun的意思就是sum1=a*a n=n-1?
是怎么理解这样的 求解释
展开
 我来答
woshinia777
2010-09-28 · TA获得超过915个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:351万
展开全部
这是递归函数,意思是求a的n次方,fun(a, n - 1) * a 是对fun的递归调用,如果你这都不知道的话,建议好好补下数据结构。
Bowen_Jin
2010-09-29 · TA获得超过223个赞
知道答主
回答量:36
采纳率:0%
帮助的人:18.7万
展开全部
sum1 = fun(a, n - 1) * a=sum1 = fun(a, n - 2) * a*a=sum1 = fun(a, n - 3) * a*a*a一直递归到sum1 = fun(a, 1) * a*a*a*a…a,然后再逐层往上计算最终把sum求出来,所以其时间和空间消耗特别大
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhccsd
2010-09-29 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:915万
展开全部
递归函数,这类函数具体的运行情况可以一步步考虑,就当自己是电脑一步步分析
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式