import java.io.*; public class fibonacci { public static void main (String[] args) throws IOException { InputStreamReader reader = new InputStreamReader (System.in); BufferedReader input = new BufferedReader (reader); System.out.println (); System.out.print ("Specify an integer n, and this program will fibonacci numbers from F(0) to F(n): "); int n = Integer.parseInt (input.readLine ()); System.out.println (); System.out.println ("Iterative version...."); System.out.println (); for (int i = 0; i <= n; i++) { System.out.println ("F(" + i + ") is " + fibonacci_iterative (i)); } System.out.println (); System.out.println ("Recursive version...."); System.out.println (); for (int i = 0; i <= n; i++) { System.out.println ("F(" + i + ") is " + fibonacci_recursive (i)); } } public static int fibonacci_iterative (int n) { if (n == 0) return 0; if (n == 1) return 1; int fib0 = 0; int fib1 = 1; int fib2 = fib0 + fib1; for (int i = 2; i < n; i++) { fib0 = fib1; fib1 = fib2; fib2 = fib1 + fib0; } return fib2; } public static int fibonacci_recursive (int n) { if (n == 0) return 0; if (n == 1) return 1; return fibonacci_recursive (n - 1) + fibonacci_recursive (n - 2); } }