-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFibonacciMemoization.java
More file actions
39 lines (29 loc) · 877 Bytes
/
FibonacciMemoization.java
File metadata and controls
39 lines (29 loc) · 877 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Memoization (Top Down)
public class FibonacciMemoization {
final int MAX = 100; // it will accept some limited values
final int NIL = -1;
int[] lookUp = new int[MAX];
// initializing all values as NIL
void initialize() {
for (int i = 0; i < MAX; i++)
lookUp[i] = NIL;
}
// function for nth Fibonacci number
int fibo(int n) {
if (lookUp[n] == NIL) {
if (n <= 1)
lookUp[n] = n;
else
lookUp[n] = fibo(n - 1) + fibo(n - 2);
}
return lookUp[n];
}
public static void main(String[] args) {
FibonacciMemoization fib = new FibonacciMemoization();
fib.initialize();
System.out.println("5th Fibonacci Number is: " + fib.fibo(5));
System.out.println("30th Fibonacci Number is: " + fib.fibo(30));
System.out.println("6th Fibonacci Number is: " + fib.fibo(6));
System.out.println("40th Fibonacci Number is: " + fib.fibo(40));
}
}