import java.util.Scanner; public class Fibonacci{ private static int[] F = new int[100]; private static int countFib=0, countFibm=0; public static void main (String[] args){ Scanner scan = new Scanner(System.in); System.out.print("Enter a positive integer: "); int m = scan.nextInt(); System.out.println("The Fibonacci number is " + fib(m) + ", and fib was called " + countFib + " times."); System.out.println("The Fibonacci number is " + fibm(m) + ", and fibm was called " + countFibm + " times."); } public static int fib(int n){ countFib++; if (n==0 || n==1) return n; else return fib(n-1) + fib(n-2); } public static int fibm(int n){ countFibm++; int ret; if (F[n] != 0) return F[n]; else if (n==0 || n==1) ret = n; else ret = fibm(n-1) + fibm(n-2); F[n] = ret; return ret; } }