📜  门| GATE-CS-2006 |问题15

📅  最后修改于: 2021-06-29 01:06:02             🧑  作者: Mango

考虑下面的C程序片段,其中i,j和n是整数变量。

for (i = n, j = 0; i >0; i /= 2, j += i);

令val(j)表示在for循环终止后存储在变量j中的值。以下哪一项是正确的?
(A)值(j)= \theta (登录)
(B)值(j)= \theta (sqrt(n))
(C)值(j)= \theta (n)
(D)val(j)= \theta (登录)

(A) A
(B) B
(C) C
(D) D答案: (C)
说明:变量j最初是0,j的值是i的值之和。 i初始化为n,并在每次迭代中减小为一半。

j = n / 2 + n / 4 + n / 8 + .. + 1 =Θ(n)

请注意for循环后的分号,因此主体中没有任何内容。

与https://www.geeksforgeeks.org/c-language-set-6/的问题1相同
这个问题的测验