4个回答
展开全部
15次,这个需要画个图就明白了。函数自己调用了自己,说明是递归函数。递归函数要观察结束条件(n < 2则退出),除此之外,每次调用会产生两次新的调用。
按照函数的代码来看,当参数小于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 …… 可以验证一下
展开全部
函数被调用几次,需观察被调用函数的次数,从而决定调用几次。
而对于递归的调用,注意要计算几次,从而决定调用几次。
而对于递归的调用,注意要计算几次,从而决定调用几次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后输出的结果是15
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询