Today we will learn the Fibonacci Series Program in C and also Fibonacci Series in C Program using different loops and user-defined functions. But, before starting you must have knowledge of Fibonacci Series. So, we will learn it first.

## What is Fibonacci Series?

The Fibonacci Series is a never-ending Sequence where the next upcoming term is the addition of the previous two terms. The Fibonacci Series starts with 0,1…

Fibonacci Series: 0,1,1,2,3,5,8,13,21 and so on.

In the above example, you will observe that the series is starting with 0,1 and the third number is 1 because of the addition of the first two numbers.

Fibonacci Series Algorithm:

1 Step: Take an integer variable X, Y and Z

2 Step: Set X=0 and Y=0.

3 Step: Display X and Y.

4 Step: Z=X+Y.

5 Step: Display Z.

6 Step: Start X=Y, Y=Z.

7 Step: Repeat from 4-6, for n times.

There are different methods to print Fibonacci Series we will see that methods one by one.

## 1. Fibonacci Sequence up to Certain Number

In this program, we will ask the user to enter the number up to which the user wants to print the series.

```#include <stdio.h>
int main()
{
int Number, i = 0, Next, First_Value = 0, Second_Value = 1;

printf("\n Please Enter the Range Number: ");
scanf("%d",&Number);
while(i < Number)
{
if(i <= 1)
{
Next = i;
}
else
{
Next = First_Value + Second_Value;
First_Value = Second_Value;
Second_Value = Next;
}
printf("%d \t", Next);
i++;
}
return 0;
}```

Output:

In the above program, we have declared four integer variables Number, i, First_Value, Second_Value.

Explanation:

1st Iteration: the while condition(0<5) returns TRUE so the while statement will start executing.we have used if-else statement and condition if(0<=1) returns TRUE.So, Next=0 and then if statement block will exit. At last, i will increment.

2nd Iteration: the while condition(1<5) returns TRUE so the while statement will start executing.The condition if(1<=1) returns TRUE.So, Next=1 and then if statement block will exit. At last, i will increment to 1.

3rd Iteration: the while condition(2<5) returns TRUE.if(2<=1) returns FALSE so else statement will start executing.Next=First_Value+Second_Value=0+1=1 and the First_Value=Second_Value=1.So, Second_Value=Next=1 and i is incremented by 1.

4th Iteration: the while condition(3<5) returns TRUE.if(3<=1) returns FALSE so else statement will start executing.Next=First_Value+Second_Value=1+1=2 and the First_Value=Second_Value=1.So, Second_Value=Next=2 and i is incremented to 4.

5th Iteration: the while condition(4<5) returns TRUE.if(4<=1) returns FALSE so else statement will start executing.Next=First_Value+Second_Value=1+2=3 and the First_Value=Second_Value=2.So, Second_Value=Next=3 and i is incremented to 5.

6th Iteration: the while condition(5<5) returns FALSE and the program is exited. And the final output is 0 1 1 2 3.

## 2. Fibonacci Series up to n Times

This program will print Fibonacci terms up to n times.

```#include <stdio.h>
int main() {
int i, n, t1 = 0, t2 = 1, nextTerm;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: ");
for (i = 1; i <= n; ++i) {
printf("%d, ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}```

Output:

## 3. Fibonacci Series in C without Recursion

```#include<stdio.h>
int main()
{
int n1=0,n2=1,n3,i,number;
printf("Enter the number of elements:");
scanf("%d",&number);
printf("\n%d %d",n1,n2);//printing 0 and 1
for(i=2;i<number;++i)
//loop starts from 2 because 0 and 1 are already printed
{
n3=n1+n2;
printf(" %d",n3);
n1=n2;
n2=n3;
}
return 0;
}
```

Output:

## 4. Fibonacci Series program Using Recursion

Recursion means calling the function again and again until the condition becomes false.

``` #include<stdio.h>
void printFibonacci(int n){
static int n1=0,n2=1,n3;
if(n>0){
n3 = n1 + n2;
n1 = n2;
n2 = n3;
printf("%d ",n3);
printFibonacci(n-1);
}
}
int main(){
int n;
printf("Enter the number of elements: ");
scanf("%d",&n);
printf("Fibonacci Series: ");
printf("%d %d ",0,1);
printFibonacci(n-2);//n-2 because 2 numbers are already printed
return 0;
}    ```

Output:

Time Complexity: T(n)=T(n-1)+T(n-2) i.e exponential.

In the above program, we can observe that the implementation does lots of repetition so this is very bad implementation for nth Fibonacci Series.

## 5. Using for Loop

In this program, we will use for loop instead of while loop doesn’t be afraid the logic is the same.

```#include <stdio.h>
int main()
{
int Number, Next, i, First_Value = 0, Second_Value = 1;
printf("\n Please Enter the Range Number: ");
scanf("%d",&Number);
/* Find & Displaying Fibonacci series */
for(i = 0; i <= Number; i++)
{
if(i <= 1)
{
Next = i;
}
else
{
Next = First_Value + Second_Value;
First_Value = Second_Value;
Second_Value = Next;
}
printf("%d \t", Next);
}
return 0;
}```

Output:

## 6. Using dynamic Programming

we can store the Fibonacci number to avoid repetition.

```#include <stdio.h>
int fib(int n)
{
/* Declare an array to store Fibonacci numbers. */
int f[n + 1];
int i;

/* 0th and 1st number of the series are 0 and 1*/
f = 0;
f = 1;

for (i = 2; i <= n; i++) {
/* Add the previous 2 numbers in the series
and store it */
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}
int main()
{
int n = 9;
printf("%d", fib(n));
getchar();
return 0;
} ```

Output:

## 7. Fibonacci Series in C program Using Functions

In this program, we will use a user-defined function Fibonacci_Series to print a Fibonacci Series Up to n number.

```#include<stdio.h>
int Fibonacci_Series(int);
int main()
{
int Number, i = 0, j;
printf("\n Please Enter Number upto which you want too: ");
scanf("%d", &Number);
printf("Fibonacci series\n");
for ( j = 0 ; j <= Number ; j++ )
{
printf("%d\t", Fibonacci_Series(j));
}
return 0;
}
int Fibonacci_Series(int Number)
{
if ( Number == 0 )
return 0;
else if ( Number == 1 )
return 1;
else
return ( Fibonacci_Series(Number - 1) + Fibonacci_Series(Number - 2) );
}```

Output: