Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Algorithms | Recursion | Question 8

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Predict the output of following program




#include <stdio.h>
int f(int n)
{
    if(n <= 1)
        return 1;
    if(n%2 == 0)
        return f(n/2);
    return f(n/2) + f(n/2+1);
}
  
  
int main()
{
    printf("%d", f(11));
    return 0;
}


(A) Stack Overflow
(B) 3
(C) 4
(D) 5


Answer: (D)

Explanation: On successive recursion F(11) will be decomposed into
F(5) + F(6) -> F(2) + F(3) + F(3)
-> F(1) + 2 * [F(1) + F(2)] -> 1 + 2 * [1 + F(1)]
-> 1 + 2 * (1 + 1) -> 5.

Hence , option D is the correct answer i.e, 5.

Quiz of this Question

My Personal Notes arrow_drop_up
Last Updated : 17 May, 2019
Like Article
Save Article
Similar Reads