Java Fibonacci Sequence

Generate the famous mathematical sequence in Java

🔢 What is Fibonacci Sequence?

The Fibonacci sequence is a series where each number equals the sum of the two preceding numbers. Starting with 0 and 1, it creates: 0, 1, 1, 2, 3, 5, 8, 13...


// Simple Fibonacci example
public class Fibonacci {
    public static void main(String[] args) {
        int n = 10;
        System.out.println("First " + n + " Fibonacci numbers:");
        for (int i = 0; i < n; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
    
    static int fibonacci(int n) {
        if (n <= 1) return n;
        return fibonacci(n-1) + fibonacci(n-2);
    }
}
                                    

Output:

First 10 Fibonacci numbers:
0 1 1 2 3 5 8 13 21 34

Different Approaches

🔄

Recursive

Simple but slower for large numbers

static int fib(int n) {
    if (n <= 1) return n;
    return fib(n-1) + fib(n-2);
}
➡️

Iterative

Faster and memory efficient

static int fib(int n) {
    if (n <= 1) return n;
    int a = 0, b = 1, c;
    for (int i = 2; i <= n; i++) {
        c = a + b;
        a = b;
        b = c;
    }
    return b;
}
📊

Array Method

Store all values for later use

static void fibArray(int n) {
    int[] fib = new int[n];
    fib[0] = 0; fib[1] = 1;
    for (int i = 2; i < n; i++) {
        fib[i] = fib[i-1] + fib[i-2];
    }
}
🔢

Series Display

Print the complete sequence

static void printFib(int n) {
    int a = 0, b = 1;
    System.out.print(a + " " + b + " ");
    for (int i = 2; i < n; i++) {
        int c = a + b;
        System.out.print(c + " ");
        a = b; b = c;
    }
}

🔹 Complete Fibonacci Program

Here's a complete program with multiple methods:

public class FibonacciComplete {
    public static void main(String[] args) {
        int n = 8;
        
        System.out.println("Fibonacci using recursion:");
        for (int i = 0; i < n; i++) {
            System.out.print(fibRecursive(i) + " ");
        }
        
        System.out.println("\n\nFibonacci using iteration:");
        fibIterative(n);
        
        System.out.println("\n\nNth Fibonacci number (n=7): " + fibNth(7));
    }
    
    // Recursive method
    static int fibRecursive(int n) {
        if (n <= 1) return n;
        return fibRecursive(n-1) + fibRecursive(n-2);
    }
    
    // Iterative method
    static void fibIterative(int n) {
        int a = 0, b = 1;
        if (n >= 1) System.out.print(a + " ");
        if (n >= 2) System.out.print(b + " ");
        
        for (int i = 2; i < n; i++) {
            int c = a + b;
            System.out.print(c + " ");
            a = b;
            b = c;
        }
    }
    
    // Get nth Fibonacci number
    static int fibNth(int n) {
        if (n <= 1) return n;
        int a = 0, b = 1, result = 0;
        for (int i = 2; i <= n; i++) {
            result = a + b;
            a = b;
            b = result;
        }
        return result;
    }
}

Output:

Fibonacci using recursion:
0 1 1 2 3 5 8 13

Fibonacci using iteration:
0 1 1 2 3 5 8 13

Nth Fibonacci number (n=7): 13

🧠 Test Your Knowledge

What are the first two numbers in the Fibonacci sequence?