#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
What is scope rule in c?
When should a type cast not be used?
any C program contains only one function, it must be a) void () b) main () c) message () d) abc ()
What is optimization in c?
Explain the properties of union.
How can I write a function analogous to scanf?
How will you print TATA alone from TATA POWER using string copy and concate commands in C?
What is the use of bit field?
Can a pointer be volatile in c?
What does it mean when a pointer is used in an if statement?
Explain how can I manipulate strings of multibyte characters?
Explain how can you tell whether a program was compiled using c versus c++?
What is difference between class and structure?
Give a one-line C expression to test whether a number is a power of 2. [No loops allowed - it's a simple test.]
Tell me is null always defined as 0(zero)?