With larger the input more time it takes to complete, with this in consideration we have two algorithms to implement and two comparison to make between a naive and an efficient way for solving a fibonacci number. As the Italian mathematician was quite inquisitive with rabbit reproduction this algorithm “Fibonacci Series” was developed, which quite fascinating as we disclose the history.

I’ve written a C code with two function “naiveFib” and “efficientFib” both of these function does the same work but the function efficientFib works more faster than the naive one reducing time complexity to *O*(*n ^{2}*)

```
#include <stdio.h>
unsigned int naiveFib(int n)
{
if(n==0){
return 0;
}
else if(n==1){
return 1;
}
else{
return ( naiveFib(n-1) + naiveFib(n-2) );
}
}
unsigned int efficientFib(int n){
/*Write your code here*/
int a=0,b=1,f=1,count=0;
for (int i = 0; i < n; i++)
{
/* code */
f=a+b;
a=b;
b=f;
// count+=1;
}
// printf("%d\n",count);
return f;
}
int main()
{
int n,i;
printf("Enter the limit of series: ");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
// printf(" %d ",naiveFib(i));
printf(" %u ",efficientFib(i));
}
printf("\n");
}
```

For Helpful Doc please check Recursion Sample

For further codes please do refer to My Github

## Leave a comment