View Feed
group-icon
Coffee Room
Discuss anything here - everything that you wish to discuss with fellow engineers.
12889 Members
Join this group to post and comment.
krishbcs
krishbcs • Mar 29, 2012

Doubt in c program

how work this recursive function. would any one of you Explain this? please...

int Fib(int N)
{
if(int N)
return 1;
else
return Fib(N-1)+Fib(N-2);
}
Recursion: calling a function from it self is called Recursion
In if clause you need to check the condition like N==0 ||N==1 .
for understanding purpose divide that code into steps
Step1:check if condition and return value
Step2:else block.again divide step 2 into parts
2.1:Fib(N-1)
2.2: Fib(N-2)
2.3:return Fib(N-1)+Fib(N-2)[means add step 2.1 and 2.2 and return the value]
Take N=3 call Fib(3) it will check the if condition not true so control will go to else block[Step 2]
in that first it will execute 2.1 step i.e call Fib(2) in this case also it will perform the above steps[checking 1 & 2 Steps] after return the value, it will execute 2.2 step i.e Fib(1) in this also it will check all the steps after return the value, 2.3 step executed i.e return value of Fib(2)+Fib(1).
in the above example Fib(3) calling Fib(2) and Fib(1) from its function itself this shows recursion.
Anoop Kumar
Anoop Kumar • Mar 29, 2012
what is the problem?
its program for Fibonacci series!!! 0, 1, 1, 2, 3, 5, 8... and so on.
there should be check that number should not be less than 0.
rahul69
rahul69 • Apr 9, 2012
This is a messed up program as the if condition is not proper.
'if(int N)' should be an error.
It should be replaced by if(N<=2) to get proper result as the logic is written that way.
The recursion happens in following manner😔eg: N=3)
fib(3)
fib(2) + fib(1)
1 + 1 =2
as 3rd term is 2 (1,1,2,...) and so on..

Share this content on your social channels -