In this article, we will show you How to Write a Program to Print Fibonacci Series in C programming language using While Loop, For Loop, Functions, and Recursion.
Fibonacci Series in C
Fibonacci Series 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 display the Fibonacci series of number from 0 to user specified number using the While Loop in C programming
/* C Fibonacci series Program using While Loop */ #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
ANALYSIS
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 following statements ask the user to enter any positive integer, and it is assigned to a Number variable.
printf("\n Please Enter the Range Number: "); scanf("%d",&Number);
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.
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++; }
Let us see the working principle of this while loop of Fibonacci series in c in iteration wise. From the above screenshot you can observe that, User entered values: Number = 5, i = 0, First_Value = 0, Second_Value = 1
First Iteration
- The condition inside the While (0 < 5) returns TRUE so, fibonacci series in 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, compiler will exit from if statement block
- Print statement printf(“%d”, Next) will print the value 0
- Lastly, i will be incremented to 1. Please refer Increment and Decrement Operators in C article to understand the ++ notation.
Second Iteration
- The condition While (1 < 5) returns TRUE
- Within the while loop, If condition if (1 <= 1) returns TRUE so Next = 1, and 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
Fourth Iteration
- While (3 < 5) returns TRUE
- if (3 <= 1) returns FALSE. So, 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 the value 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
- Next, printf(“%d”, Next) prints 3. Now, i becomes 5
Sixth Iteration: While (5 < 5) returns FALSE so, 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 program will print the Fibonacci series of number from 0 to n using For Loop
/* C Fibonacci series Program 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 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
We just replaced the While loop in the above Fibonacci series in c example with the For loop. Please refer For Loop article here For Loop to understand the for loop functionality.
Fibonacci series in C using Functions
This Program allows the user to enter any positive integer. Next, this C program print Fibonacci series of number from 0 to 100 using Functions
/* C Fibonacci Series Program using Functions */ #include<stdio.h> void Fibonacci_series(int Number) ; int main() { int Number; printf("Enter the number of terms\n"); scanf("%d", &Number); printf("Fibonacci series First %d Numbers:\n", Number); Fibonacci_series(Number) ; return 0; } void Fibonacci_series(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); } }
OUTPUT
ANALYSIS
When the compiler reaches to Fibonacci_series(Number); line then the compiler will immediately jump to below function:
void Fibonacci_series(int Number)
We already explained LOGIC above example.
NOTE: If we create a function with Void, no need to return any value. However, if we declared a function with any data type (int, float, etc.), we have to return something out from the function.
Fibonacci series in C using Recursion
This Program in C prints the Fibonacci series of numbers from 0 to user specified number using the Recursion concept.
/* C Fibonacci series Program using Recursion */ #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
ANALYSIS
Fibonacci Class Analysis:
In this class, we defined a function. the following function will accept integer values as parameter value and return an integer value
int Fibonacci_Series(int Number)
Let’s see the Else If statement inside the above-specified functions
- if (Number == 0) checks whether the given number is 0 or not. If it is TRUE, the function will return the value Zero.
- if (Number == 1) checks number equal to 1 or not. If it’s TRUE, the function returns One.
- and if the number 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 ( Fibonacci_Series(Number - 1) + Fibonacci_Series(Number - 2) );
For example, Num = 2
- (Fibonacci_series(Num – 2) + Fibonacci_series(Num – 1))
- (Fibonacci_series(2 – 2) + Fibonacci_series(2 – 1)), It means
- (Fibonacci_series (0)+ Fibonacci_series(1))
- return (0 + 1) = return 1
NOTE: For Fibonacci series in c using 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).
Please be careful :)