GATE | GATE-CS-2006 | Question 15

Consider the following C-program fragment in which i, j and n are integer variables.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Let val(j) denote the value stored in the variable j after termination of the for loop. Which one of the following is true?
(A) val(j) = \theta(logn)
(B) vaI(j) = \theta(sqrt(n))
(C) val(j) = \theta(n)
(D) val(j) = \theta(nlogn)

(A) A
(B) B
(C) C
(D) D


Answer: (C)

Explanation: The variable j is initially 0 and value of j is sum of values of i. i is initialized as n and is reduced to half in each iteration.

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

Note the semicolon after the for loop, so there is nothing in the body.

Same as question 1 of https://www.geeksforgeeks.org/c-language-set-6/

Quiz of this Question

My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.