首页 > 试题广场 >

class program { &...

[单选题]
class program
 {
     static void Main(string[] args)
     {
         int i;
         i = x(8);
     }
     static int x(int n)
     {
         if (n <= 3)
             return 1;
         else
             return x(n - 2) + x(n - 4) + 1;
     }
 }
递归算法x(8)需要调用几次函数x(int n)

  • 9
  • 12
  • 18
  • 24
选A的集合一下,我还认真看了下,就是X(8)
发表于 2019-08-21 22:55:39 回复(7)
题目确实有些误导,计算过程可以表示为:

x(8) = x(6)+ x(4) +1 = 9
x(6) = x(4)+ x(2) +1 = 5
x(4) = x(2)+ x(0) +1 = 3

以上共调用 x(int n) 函数 9 次,之后再计算 x(9)
x(9) = x(7)+ x(5) +1 = 9
x(7) = x(5)+ x(3) +1 = 5
x(5) = x(3)+ x(1) +1 = 3

同样,调用
x(int n) 函数 9 次
故,总共调用函数18次,选C。


发表于 2019-07-01 14:53:25 回复(2)
题目要求:递归算法x(8)需要调用几次函数x(int n)。
我的理解:算x(8)需要调用几次函数x(int x)。 所以天真的选了A。
正确答案:C,18次,就是x(x(8))总共调用了多少次x(int n)。
无语,题目还是有歧义的。哼!

发表于 2019-05-24 18:01:31 回复(7)

1 x(8): x(6) + x(4) + 1

2 x(6): x(4) + x(2) + 1 + x(4) + 1

3 x(4): x(2) + x(0) +1 + x(2) + 1 + x(4) + 1

4 x(2): 1 + x(0) +1 + x(2) + 1 + x(4) + 1

5 x(0): 1 + 1 + +1 + x(2) + 1 + x(4) + 1

6 x(2): 1 + 1 + +1 + 1 + 1 + x(4) + 1

7 x(4): 5 + x(2) + x(0) + 1

8 x(2): 5 + 1 + x(0) + 1

9 x(0): 5 + 1 + 1 + 1

发表于 2021-05-20 15:49:39 回复(0)
就是9次
发表于 2022-05-12 20:27:58 回复(0)
直接画一棵树,然后先算参数n比较小的,后面会重复用到,算着比较快
发表于 2020-05-28 14:21:34 回复(0)

我在程序上敲了一下这个代码、每调用x(n)输出一句话、总共输出了12次,故选B啊


发表于 2019-10-12 20:22:27 回复(1)
怎么标答一会是C一会是A???
发表于 2022-11-04 00:57:43 回复(0)
说的是x(8)这一句递归了几次吧
发表于 2020-06-27 22:49:24 回复(0)
x(8)=
x(6)+x(2)+1+x(4)+x(2)+1
x(4)+x(0)+1+x(0)+1+1+1+1
x(2)+1+1+1+1+1+1+1+1
=9

编辑于 2020-03-04 16:28:36 回复(0)

题目不严谨嗄,应该选A啊

发表于 2019-09-26 18:43:06 回复(0)
题目有问题
发表于 2019-09-24 20:13:05 回复(0)
题目出的不严谨
发表于 2019-08-22 20:10:45 回复(0)
x(8)=x(6)+x(4)调用三次
x(6)需要调用x(4)+x(2),而x(4)=x(2)+x(0),计算一次x(6)需要四次,计算一次x(8)需要调用3+4+2=9
x(8)=8,所以共计调用18次
发表于 2019-06-23 18:55:17 回复(0)
这道题问的有问题吧,不是x(8)吗?按理说选A啊
发表于 2019-06-14 01:46:39 回复(0)
这道题感觉是有问题的吧
发表于 2019-06-12 17:39:14 回复(0)
**,我以为是x(8).
发表于 2019-05-26 14:25:37 回复(0)