C Fibonacci Series Program

How to Write a Program to Print Fibonacci Series in C programming using While Loop, For Loop, Functions, and Recursion?.

Fibonacci Series in C

Fibonacci Series in C or Fibonacci Numbers are the numbers that display in the following sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,…

If you observe the above pattern, First Value is 0, Second Value is 1, and the following number is the result of the sum of the previous two numbers. For example, Third value is (0 + 1), Fourth value is (1 + 1) so on and so forth.

Fibonacci series in C using While Loop

This Program allows the user to enter any positive integer. And then, display the Fibonacci series of number from 0 to user-specified number using the While Loop in C programming.

#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;
}
C Fibonacci Series Program 1

In this Fibonacci series in c program, first, We declared four integer variables Number, i, First_Value, Second_Value, and assigned values as we showed above. The first printf and scanf statements ask the user to enter any positive integer, and it assigns to a Number variable.

The While loop in this c Fibonacci series program will make sure that the Loop will start from 0, and it is less than the user-specified number. Within the While Loop, we used If Else statement.

  • If i value is less than or equal to 1, i value will be assigned to Next.
  • If i value is greater than 1, perform calculations inside the Else block.

Let us see the working principle of this while loop of Fibonacci series in c in iteration wise. From the above C programming screenshot, you can observe that the user entered values are Number= 5, i = 0, First_Value = 0, Second_Value = 1

First Iteration

The condition inside the While (0 < 5) returns TRUE. So, the Fibonacci series c program will start executing the statements inside the while loop

Within the while loop we have If Else statement and the condition if (0 <= 1) returns TRUE so Next = 0 and, the compiler will exit from if statement block

Print statement printf(“%d”, Next) will print 0.

Lastly, i will increment to 1. Please refer to Increment and Decrement Operators in C article to understand the ++ notation.

C Fibonacci Second Iteration

  • The condition While (1 < 5) returns TRUE
  • If condition if (1 <= 1) returns TRUE. So, Next = 1, and the compiler will exit from if statement block
  • printf(“%d”, Next) will print the value 1
  • Lastly, i will be incremented to 1

Third Iteration

  • While (2 < 5) returns TRUE
  • if (2 <= 1) returns FALSE. So, statements inside the else block will start executing
    • Next = First_Value + Second_Value ==> 0 + 1 = 1
    • First_Value = Second_Value = 1
    • Second_Value = Next = 1
  • Next, Print statement printf(“%d”, Next) will print the value 1.
  • i incremented by 1

C Fibonacci Fourth Iteration

  • While (3 < 5) returns TRUE
  •  if (3 <= 1) returns FALSE. So, the compiler execute else block
    • Next = First_Value + Second_Value ==> 1 + 1 = 2
    • First_Value and Second_Value = 1
    • Second_Value = Next = 2 
  • Next, printf(“%d”, Next) prints 2. Next, i wil be 4

Fifth Iteration: while(4 < 5) = True

  • If condition if (4 <= 1) returns FALSE 
    • Next = 1 + 2 => 3
    • First_Value = Second_Value = 2
    • Second_Value = Next = 3 
  • i becomes 5

Sixth Iteration: While (5 < 5) returns FALSE. So, the compiler exits from the while loop.

From the above, Our final output of C Fibonacci Series program Next values are: 0 1 1 2 3

C Fibonacci Series Program using For Loop

This C Program allows the user to enter any positive integer. And then, this C program will print the Fibonacci series of number from 0 to n using For Loop

#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 */
	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;
}
Please Enter the Range Number: 10
0 	1 	1 	2 	3 	5 	8 	13 	21 	34 	55

We just replaced the While loop in the above Fibonacci series in c example with the For loop. Please refer to the For Loop in C article.

Fibonacci series in C using Functions

This C program print Fibonacci series of number from 0 to 100 using Functions

When the compiler reaches to Fibonacci_series(Number); line then the compiler will immediately jump to below function void Fibonacci_series

#include<stdio.h>
void Fibseries(int Number) ;
int main()
{
   int Number;
 
   printf("Enter the number of terms\n");
   scanf("%d", &Number);
 
   printf("First %d :\n", Number);
   Fibseries(Number) ;
 
   return 0;
}
void Fibseries(int Number) 
{
   int i, First_Value = 0, Second_Value = 1, Next;
   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);
   }
}
Enter the number of terms
15
First 15 :
0	1	1	2	3	5	8	13	21	34	55	89	144	233	377	610

Fibonacci series in C using Recursion

This Program prints the Fibonacci series numbers from 0 to user-specified value using the Recursion.

#include<stdio.h>
 
int FibSeries(int);
 
int main()
{
   int Num, i = 0, j;
 
   printf("\n Please Enter upto which you want too print: ");
   scanf("%d", &Num);
 
   printf("Fib series\n");
 
   for ( j = 0 ; j <= Num ; j++ )
   {
      printf("%d\t", FibSeries(j));
   }
    return 0;
}
 
int FibSeries(int Num)
{
   if ( Num == 0 )
      return 0;
   else if ( Num == 1 )
      return 1;
   else
      return ( FibSeries(Num - 1) + FibSeries(Num - 2) );
}
Please Enter upto which you want too print: 20
Fib series
0	1	1	2	3	5	8	13	21	34	55	89	144	233	377	610	987	1597	2584	4181	6765

Class Analysis:

The following function will accept integer as parameter value and return an integer.

int FibSeries(int Num)

Let’s see the Else If statement inside the above-specified recursion functions

  • if (Num == 0) checks whether the given number is 0 or not. When it is TRUE, the function will return Zero.
  • if (Num == 1) checks number equal to 1 or not. If it’s TRUE, the function returns One.
  • and if it is greater than 1, the compiler executes the statements in the else block.

Within the Else block of this C fibonacci series using Recursion program, we are calling the Fibonacci_Series function recursively to display the Fibonacci numbers.

return ( FibSeries(Num - 1) + FibSeries(Num - 2) );

For example, Num = 2

(FibSeries(Num – 2) + FibSeries(Num – 1))

(FibSeries(2 – 2) + FibSeries(2 – 1)), It means

(FibSeries (0)+ FibSeries(1))

return (0 + 1) = return 1

NOTE: For the recursive function, it is very important to place a condition before using the function recursively. Otherwise, we will end up in infinite execution (Same like infinite Loop).