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

📅  最后修改于: 2021-09-26 03:13:30             🧑  作者: Mango

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

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

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

(一) A
(乙)
(C)
(四)答案: (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 相同
这个问题的测验