首页 > 试题广场 >

如下f函数在执行f(10)的时候调用了多少次?()int f

[单选题]
如下函数在执行f(10)的时候调用了()次
int f(int x) {
    if(x <= 2) return 1;
    return f(x - 2) + f(x - 4) + 1;
}


  • 14
  • 18
  • 20
  • 以上都不对
正确答案为15次。
f(10) = f(8) + f(6) + 1
        = (f(6) + f(4) + 1) + (f(4) + f(2) + 1) + 1
        = (f(4) + f(2) + 1) + (f(2) + f(0) + 1) + 1 + (f(2) + f(0) + 1) + 1 + 1 + 1
        = (f(2) + f(0) + 1) + 12
发表于 2020-11-24 16:47:06 回复(2)
还有f(10)
发表于 2018-03-24 17:00:57 回复(0)
正确答案为15次  可以构造一个递归树,清楚明了
发表于 2018-03-25 01:22:51 回复(0)
忽略了一个f(10)🤣
发表于 2021-12-06 10:50:55 回复(0)
发表于 2023-09-07 20:31:33 回复(2)
算出来是15,但是答案没有,于是随便选了个。
发表于 2021-07-15 13:16:03 回复(0)
f(10)的计算结果就是f(10)中f执行的次数
发表于 2018-03-31 16:01:41 回复(0)
画递归树,一共15点故执行15次。
发表于 2022-11-16 13:41:27 回复(0)
注意一开始f(10) 也算一次
发表于 2022-03-08 15:18:34 回复(2)
算出来15,不敢选D。。。
编辑于 2024-04-22 17:50:00 回复(0)
要相信自己的结果
发表于 2023-11-26 17:21:04 回复(0)
f(10)也算一次啊
发表于 2022-10-19 19:22:43 回复(0)
理解矛盾了,执行f(10)时调用了多少次(),一般的理解是f(10)调用了多少(),所以不会算上f(10)
发表于 2022-08-15 11:58:47 回复(1)

别把f(10)给忘了.....

发表于 2021-10-23 13:37:38 回复(0)
忘了还有f(10)了
发表于 2021-09-17 19:36:42 回复(0)
漏掉f(10)
发表于 2021-03-28 11:05:45 回复(0)
这个递归往上溯源可以构建出来一个dom树,每个节点表示一次,即递归了15次,清晰明了

发表于 2018-05-15 21:35:53 回复(0)
一定是奇数个.
发表于 2018-05-11 12:53:18 回复(0)
构造一个递归树,查看结点个数
发表于 2018-04-03 10:27:31 回复(0)