Program to Print Fibonacci Series in Java

authorImageVarun Saharawat19 Dec, 2025
Program to Print Fibonacci Series in Java

What Is the Fibonacci Series Program in Java?

The Fibonacci series is a mathematical sequence where each number is the sum of the two preceding numbers, starting from 0 and 1. Example: 0, 1, 1, 2, 3, 5, 8, 13, 21 … The Fibonacci series program in Java is one of the most common beginner programs used to understand loops, recursion, performance optimization, and input handling.

1. Fibonacci Series Using the Iterative Approach (For Loop)

The fibonacci series program in java using for loop is the most efficient and beginner-friendly approach. It avoids recursion overhead and is easy to understand.

Java Program: Fibonacci Series Using For Loop

import java.util.Scanner; public class FibonacciForLoop {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.print("Enter number of terms: ");         int n = sc.nextInt();         int a = 0, b = 1;         System.out.print("Fibonacci Series: ");         for (int i = 1; i <= n; i++) {             System.out.print(a + " ");             int next = a + b;             a = b;             b = next;         }     } }

The complexity of the above method:

  • Time Complexity: O(n)
  • Space Complexity: O(1)
This approach is widely used in interviews and real-world applications due to its efficiency.

2. Fibonacci Series Using Recursive Approach

The fibonacci series program in java using recursion demonstrates how a function can call itself to solve smaller subproblems.

Java Program: Fibonacci Using Recursion

import java.util.Scanner; public class FibonacciRecursion {     static int fibonacci(int n) {         if (n <= 1)             return n;         return fibonacci(n - 1) + fibonacci(n - 2);     }     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.print("Enter number of terms: ");         int n = sc.nextInt();         System.out.print("Fibonacci Series: ");         for (int i = 0; i < n; i++) {             System.out.print(fibonacci(i) + " ");         }     } }

The complexity of the recursive method:

  • Time Complexity: O(2ⁿ)
  • Space Complexity: O(n) (due to recursion stack)
This method is useful for understanding recursion but not recommended for large values of n.

3. Fibonacci Series Using Memoization

Memoization improves recursion by storing previously computed results, eliminating redundant calculations.

Java Program: Fibonacci Using Memoization

import java.util.Scanner; public class FibonacciMemoization {     static int[] memo;     static int fibonacci(int n) {         if (n <= 1)             return n;         if (memo[n] != 0)             return memo[n];         memo[n] = fibonacci(n - 1) + fibonacci(n - 2);         return memo[n];     }     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.print("Enter number of terms: ");         int n = sc.nextInt();         memo = new int[n + 1];         System.out.print("Fibonacci Series: ");         for (int i = 0; i < n; i++) {             System.out.print(fibonacci(i) + " ");         }     } }

Complexity:

  • Time Complexity: O(n)
  • Space Complexity: O(n)
This method combines clarity with better performance.

4. Fibonacci Series Using Dynamic Programming

Dynamic programming uses a bottom-up approach to build the Fibonacci series efficiently.

Java Program: Fibonacci Using Dynamic Programming

import java.util.Scanner; public class FibonacciDP {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.print("Enter number of terms: ");         int n = sc.nextInt();         int[] fib = new int[n];         fib[0] = 0;         if (n > 1) fib[1] = 1;         for (int i = 2; i < n; i++) {             fib[i] = fib[i - 1] + fib[i - 2];         }         System.out.print("Fibonacci Series: ");         for (int i = 0; i < n; i++) {             System.out.print(fib[i] + " ");         }     } }

Complexity:

  • Time Complexity: O(n)
  • Space Complexity: O(n)
Dynamic programming is preferred for larger inputs when clarity and efficiency are both important.

Fibonacci Series Program in Java Using Scanner

Most real-world programs require user input. The fibonacci series program in java using scanner allows dynamic input handling and is commonly expected in exams and interviews. (Scanner-based examples are included in all programs above.)

Fibonacci Series Program in JavaScript (Comparison)

Understanding the fibonacci series program in javascript helps learners compare Java with other languages.

JavaScript Fibonacci Example

let n = 10; let a = 0, b = 1; let result = ""; for (let i = 0; i < n; i++) {     result += a + " ";     let next = a + b;     a = b;     b = next; } console.log(result); Java and JavaScript implementations are logically similar, differing mainly in syntax.

When to Use Which Fibonacci Approach?

Approach Best For
For Loop Beginners, interviews
Recursion Understanding recursion
Memoization Optimized recursion
Dynamic Programming Large inputs
JavaScript Web-based logic

FAQs: Fibonacci Series Program in Java

1. What is the Fibonacci series program in Java?

It is a Java program that generates a sequence where each number is the sum of the previous two numbers.

2. Which is the best Fibonacci series program in Java?

The iterative for-loop approach is the best due to its O(n) time complexity and low memory usage.

3. Is recursion recommended for Fibonacci series in Java?

Recursion is useful for learning but inefficient for large inputs unless optimized with memoization.

4. Can Fibonacci series be implemented using Scanner in Java?

Yes, Scanner is commonly used to take user input for Fibonacci series programs in Java.

Also Read: