#include<stdio.h>
int f(int,int);
int main()
{
printf("%d",f(20,1));
return 0;
}
int f(int n,int k)
{
if(n==0) return 0;
else if(n%2)return f(n/2,2*k)+k;
else return f(n/2,2*k)-k;
}
how this program is working and generating output as 9....?
Answer Posted / kodam
n=20, k =1
if, else if false. so it will call
f(n/2,2*k)-k ==> f(10,2)-1
if, else if false
f(n/2,2*k)-k ==> f(5, 4)-2
if is false. else if is true
f(n/2,2*k)+k ==> f(2, 8)+4
if, else if false
f(n/2,2*k)-k ==> f(1, 16)-8
if is false. else if is true
f(n/2,2*k)+k ==> f(0, 32)+16
now n is zero.
output
------
-1-2+4-8+16 = 9
| Is This Answer Correct ? | 7 Yes | 0 No |
Post New Answer View All Answers
diff between exptected result and requirement?
What is a constant and types of constants in c?
`write a program to display the recomended action depends on a color of trafic light using nested if statments
What is meant by gets in c?
What are multidimensional arrays?
Can include files be nested? How many levels deep can include files be nested?
which is an algorithm for sorting in a growing Lexicographic order
Differentiate between null and void pointers.
What is the use of a ‘ ’ character?
When should structures be passed by values or by references?
Give me the code of in-order recursive and non-recursive.
What are formal parameters?
Tell me the use of bit field in c language?
the real constant in c can be expressed in which of the following forms a) fractional form only b) exponential form only c) ascii form only d) both a and b
Describe the modifier in c?