How to print a Fibonacci series up to a given number in Java?

Fibonacci series is a special type of series in which the next number is the sum of the previous two numbers. For example, 1 1 2 3 5 8 13 21…. up to a given number.

Solution #1 : Using Recursion

FibonacciSeriesWithRecursion.java

package com.javacodepoint.programs;

import java.util.Scanner;

public class FibonacciSeriesWithRecursion {

	// initiating first two numbers of the Fibonacci series
	static int number1 = 0;
	static int number2 = 1;

	public static void main(String[] args) {

		// Taking input from the user to print Fibonacci series up to how many numbers

		System.out.println("Enter number up to which Fibonacci series to print:");

		// Reading user input using Scanner object
		int upto = new Scanner(System.in).nextInt();

		// Printing first two numbers
		System.out.print(number1 + " " + number2);

		// Calling recursive function by decreasing 2 because two numbers are already printed
		printFibonacci(upto - 2);

	}

	/*
	 * Recursive function
	 */
	public static void printFibonacci(int count) {

		if (count > 0) {
			int nextNumber = number1 + number2;
			number1 = number2;
			number2 = nextNumber;

			System.out.print(" " + nextNumber);

			// Call the recursive function again
			printFibonacci(count - 1);
		}
	}
}

OUTPUT:

Enter number up to which Fibonacci series to print:
12
0 1 1 2 3 5 8 13 21 34 55 89

Solution #2 : Without Using Recursion

FibonacciSeries.java

package com.javacodepoint.programs;

import java.util.Scanner;

public class FibonacciSeries {

	public static void main(String[] args) {

		// Taking input from the user to print Fibonacci series up to how many numbers

		System.out.println("Enter number up to which Fibonacci series to print:");

		// Reading user input using Scanner object
		int upto = new Scanner(System.in).nextInt();

		// Initiating first two numbers of the Fibonacci series
		int number1 = 0;
		int number2 = 1;

		// Printing first two numbers
		System.out.print(number1 + " " + number2);

		// Start the loop from 3 because first two numbers are already printed
		for (int i = 3; i <= upto; i++) {
			int nextNumber = number1 + number2;
			System.out.print(" " + nextNumber);
			number1 = number2;
			number2 = nextNumber;
		}
	}
}

OUTPUT:

Enter number up to which Fibonacci series to print:
10
0 1 1 2 3 5 8 13 21 34

Java logical programs list


Java Basic Programs

Java String Programs

Java String Array Programs

Java Miscellaneous Programs

Java Programs based on the Collection Framework

Java Programs based on Stream API (Java 8)