diff --git a/fibonacci.java b/fibonacci.java index 06066cc..c3f3597 100644 --- a/fibonacci.java +++ b/fibonacci.java @@ -4,19 +4,26 @@ import java.util.Scanner; * fibonacci */ public class fibonacci { + public static long[] fibonacciCache; public static void main(String[] args) { System.out.println("Let's try to get back on the horse!"); Scanner sc = new Scanner(System.in); System.out.println("Please enter the number you wanna search: "); int fib = sc.nextInt(); sc.close(); + fibonacciCache = new long[1+fib]; System.out.println(fibonacciNum(fib)); } - public static int fibonacciNum(int x){ + public static long fibonacciNum(int x){ if (x <= 1){ return x; } - return (fibonacciNum(x-1)+(fibonacciNum(x-2))); + if (fibonacciCache[x] != 0){ + return fibonacciCache[x]; + } + long nthFib = (fibonacciNum(x-1)+(fibonacciNum(x-2))); + fibonacciCache[x] = nthFib; + return nthFib; } } \ No newline at end of file