Fibonacci in Java

Basic recursive fibonacci in Java. Very inefficient. Set N >= 50 to see why.

How can we make this code more efficient when a) still using recursion, b) re-coding iteratively?


public class Fibonacci {
    public static long fibonacci(int n) {
        if (n <= 1) 
        	return n;
        else 
        	return fibonacci(n-1) + fibonacci(n-2);
    }
    
    public static void main(String[] args) {
        int n = 10;
        for (int i = 1; i <= n; i++) {
            System.out.println("N:" + i + ": " + fibonacci(i));
        }
    }
}

Blog at WordPress.com.

Up ↑