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:
