Anyone know how to do this question?
Use recursion to implement the following recurrence relation f(x):
f(x)=1 where =1
f(x) = f((x+1)/2) +1 where x is odd
f(x) = f(x/2) +1 where x is even
This is what i did:
#include<stdio.h>
int func (int x)
int main()
{
int x;
printf("Please enter the value of x: ");
scanf("%d", &x);
int func=func(x);
printf("%d",func) ;
return 0;
}
int func (int x)
{
if(x==1)
return 1;
else if (x%2 ==1)
return func ( (x+1)/2 ) + 1;
else
return func (x/2) + 1;
}
But it doesnt work.
Could you please kindly explain how a recursion work as well?
Thank youuuuu!
4
Contributors
4
Replies
21 Hours
Discussion Span
1 Year Ago
Last Updated
5
Views
Related Article:Recursion
is a C++ discussion thread by Rez11 that has 2 replies, was last updated 2 years ago and has been tagged with the keywords: c++, recursion, strings.
Anyone know how to do this question?
Use recursion to implement the following recurrence relation f(x):
f(x)=1 where =1
f(x) = f((x+1)/2) +1 where x is odd
f(x) = f(x/2) +1 where x is even
This is what i did:
#include<stdio.h>
int func (int x)
int main()
{
int x;
printf("Please enter the value of x: ");
scanf("%d", &x);
int func=func(x);
printf("%d",func) ;
return 0;
}
int func (int x)
{
if(x==1)
return 1;
else if (x%2 ==1)
return func ( (x+1)/2 ) + 1;
else
return func (x/2) + 1;
}
But it doesnt work.
Could you please kindly explain how a recursion work as well?
Thank youuuuu!
What doesn't work about it? All I see wrong with your code is a missing ";" after your function prototype.