Evaluate the following:
int fn(int v)
{
if(v==1 || v==0)
return 1;
if(v%2==0)
return fn(v/2)+2;
else
return fn(v-1)+3;
}
for fn(7);
1) 10
2) 11
3) 1
Answer Posted / anju nair
the answer is : 11
solution :
since v=7
initially f(6)+ 3 is executed ( being a recurrsive
function) fn is again called with v=6 and the return now
is f(3) + 2 and again fn is called with v=3 and the return
now is f(2) +3 and again fn is called with v=0.now
recurrsion ends since f(0) is 1
f(0)=1
f(0)+2=3
f(2)=f(0)+2=1+2
f(2)+3=6
f(3)=f(2)+3=6
f(3)+2=6+2=8
f(6)=f(3)+2=8
f(6)+3=8+3=11
f(7)=f(6)+3
f(7)=11
now v hav to back track and keep adding
1+2+3+2+3 = 11.
| Is This Answer Correct ? | 14 Yes | 1 No |
Post New Answer View All Answers
What does %d do in c?
Is it cc or c in a letter?
How can I split up a string into whitespace-separated fields?
How can I automatically locate a programs configuration files in the same directory as the executable?
How can a string be converted to a number?
What are the types of variables in c?
Write a code on reverse string and its complexity.
What is malloc and calloc?
Why does notstrcat(string, "!");Work?
Explain how do you list files in a directory?
Write programs for String Reversal & Palindrome check
write a progrmm in c language take user interface generate table using for loop?
Explain the difference between strcpy() and memcpy() function?
Is javascript based on c?
explain how do you use macro?