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));
}
}
}