c语言题目函数被调用了几次? 10

这个func函数被调用了几次呀。怎么分析呀... 这个func函数被调用了几次呀。怎么分析呀 展开
 我来答
solidco2
2019-12-09 · 知道合伙人软件行家
solidco2
知道合伙人软件行家
采纳数:126 获赞数:539

向TA提问 私信TA
展开全部

15次,这个需要画个图就明白了。函数自己调用了自己,说明是递归函数。递归函数要观察结束条件(n < 2则退出),除此之外,每次调用会产生两次新的调用。

每个fun(..)就是一次调用

按照函数的代码来看,当参数小于2时就不再分支。这就是最直接的解法。

如果你想找更通用的解法,可以观察一下,(下面推理逻辑只说数字,写fun太麻烦)

  • 设fun(x)的调用次数为Nx,那N5 = 1 + N4 + N3(1 为本次调用本身的记数)

  • N4 = 1 + N3 + N2

  • N3 = 1 + N2 + N1

  • N2 = 1 + N1 + N0

  • N1 = 1

  • N0 = 1

  • 这个是类似斐波那契数列的一种计算方式,得到的数列(从N0开始)是 1, 1, 3, 5, 9, 15 ……从第三个数(N2)开始,每个数等于前两个数的和+1

  • 由此可以推导出,N6 = 25,N7 = 41 …… 可以验证一下

greatReanswer
高粉答主

2019-12-09 · 醉心答题,欢迎关注
知道大有可为答主
回答量:1.9万
采纳率:89%
帮助的人:712万
展开全部
函数被调用几次,需观察被调用函数的次数,从而决定调用几次。
而对于递归的调用,注意要计算几次,从而决定调用几次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅初彤2B
2019-12-09 · TA获得超过2.6万个赞
知道大有可为答主
回答量:4.4万
采纳率:65%
帮助的人:5482万
展开全部
最后输出的结果是15

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8b58de0
2019-12-09 · TA获得超过945个赞
知道小有建树答主
回答量:1079
采纳率:83%
帮助的人:326万
展开全部
n=5, func(4),func(3) 1次
n=4, func(3),func(2) 1次
n=3,func(2),func(1) 1次
n=3,func(2),func(1) 1次
n=2,fun(1),func(0) 1次
n=2,fun(1),func(0) 1次
n=2,fun(1),func(0) 1次
n=1 5次
n=0 3次
一共15次,答C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式