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.
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.