The Fibonacci sequence is a series of numbers where a number is the sum of previous two numbers. Starting with 0 and 1, the sequence goes 0, 1, 1, 2, 3, 5, 8, 13, 21, and so on. Here we will write three programs to print fibonacci series 1) using for loop 2) using while loop 3) based on the number entered by user
To understand these programs, you should have the knowledge of for loop and while loop.
If you are new to java, refer this java programming tutorial to start learning from basics.
Example 1: Program to print fibonacci series using for loop
public class JavaExample { public static void main(String[] args) { int count = 7, num1 = 0, num2 = 1; System.out.print("Fibonacci Series of "+count+" numbers:"); for (int i = 1; i <= count; ++i) { System.out.print(num1+" "); /* On each iteration, we are assigning second number * to the first number and assigning the sum of last two * numbers to the second number */ int sumOfPrevTwo = num1 + num2; num1 = num2; num2 = sumOfPrevTwo; } } }
Output:
Fibonacci Series of 7 numbers:0 1 1 2 3 5 8
Example 2: Displaying Fibonacci Sequence using while loop
public class JavaExample { public static void main(String[] args) { int count = 7, num1 = 0, num2 = 1; System.out.print("Fibonacci Series of "+count+" numbers:"); int i=1; while(i<=count) { System.out.print(num1+" "); int sumOfPrevTwo = num1 + num2; num1 = num2; num2 = sumOfPrevTwo; i++; } } }
Output:
Fibonacci Series of 7 numbers:0 1 1 2 3 5 8
Example 3: Program to display the fibonacci series based on the user input
This program display the sequence based on the number entered by user. For example – if user enters 10 then this program displays the series of 10 numbers.
import java.util.Scanner; public class JavaExample { public static void main(String[] args) { int count, num1 = 0, num2 = 1; System.out.println("How may numbers you want in the sequence:"); Scanner scanner = new Scanner(System.in); count = scanner.nextInt(); scanner.close(); System.out.print("Fibonacci Series of "+count+" numbers:"); int i=1; while(i<=count) { System.out.print(num1+" "); int sumOfPrevTwo = num1 + num2; num1 = num2; num2 = sumOfPrevTwo; i++; } } }
Output:
How may numbers you want in the sequence: 6 Fibonacci Series of 6 numbers:0 1 1 2 3 5
Checkout these related Java programs:
Amy says
Need the same for first 10 numbers of Fibonacci series
Afzal Hamdulay says
Why we have used the value of i=1 and not i=0 and what will happen if we take i=0?
Raja says
if you take i = 0 it also right but in case of that –
case 1. in for loop for loop if you take i = 0; you have to take the for loop till count not equals to.
syntax : for(i = 0; i < count; ++i){}
case 2. in case of while loop also –
syntax : int i = 0;
while(i < count){}
I hope it would be helpful for you. taking input as 0 is not wrong but in that case the loop goes upto the previous number of the limit but doesn't upto the number.
K.M.T says
Because if we start from i=0, the program executes 1 more time than required. Just count from 0 to a specific no. and from 1 to a specific no. You will find the difference
Bagaskara Wisnu Gunawan says
Let’s use example 1 as a test case. When you assign i=0 for the loop, it will then loop from 0 to 7 which is 8 times (0, 1, 2, 3, 4, 5, 6, 7), so we need to assign i=1 and the looping count is right.
Likitha says
Good and smart🙂
Andrew says
if you are to use i=0 then in the while loop you put i<count
Naseer ullah says
Because Fibonacci series is start from 0.
StigaICE says
What does it mean to have a blank string in System.out.println(” “);
From solution 1, System.out.println(num1 + ” “);
Abishek M says
THE entire code is being printed in the Run Time Window. So, please make the necessary corrections and publish the same again ! Appreciate the effort.
joe says
It really bothers me why i cannot figure out where the second ‘1’ in the 0 ,1 ,1 …. sequence comes from within the code
Pidva says
Why use sumOfPrevTwo ?
Vigneshram says
We can use i=0 and i<7
looping is also correct for me it from 0 to 6(7 values)
anonymous says
Program to display the fibonacci series based on the user input and its sum??