What value does function sum return when called with a value of 5? <syntaxhighlight lang="c" name="recursion_1"> int sum (int n) {

  if (n < 1) return 1;
  else return n + sum(n - 1) + sum(n - 2);

} </syntaxhighlight>


Solution by Arjun Suresh

We have to find the value of sum(1), sum(2), sum(3), sum(4) and sum(5)
sum(1) = 1 + sum(0) + sum(-1) = 1 + 1 + 1 = 3
sum(2) = 2 + sum(1) + sum(0) = 2 + 3 + 1 = 6
sum(3) = 3 + sum(2) + sum(1) = 3 + 6 + 3 = 12
sum(4) = 4 + sum(3) + sum(2) = 4 + 12 + 6 = 22
sum(5) = 5 + sum(4) + sum(3) = 5 + 22 + 12 = 39
So, 39 is the answer




blog comments powered by Disqus



This work is licensed under the CC By-SA 3.0 , without all the cruft that would otherwise be put at the bottom of the page.

Sister Sites: GATE CSE Wiki, GATE CSE, Aptitude Overflow