Skip to content

Commit ba8d070

Browse files
add fibonacci dynamic programming
1 parent 47c1c04 commit ba8d070

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.examplehub.dynamicprogramming;
2+
3+
public class FibonacciDP {
4+
5+
/**
6+
* Get nth fibonacci number.
7+
*
8+
* @param nth the nth
9+
* @return nth fibonacci number.
10+
*/
11+
public static int fibonacci(int nth) {
12+
int[] fib = new int[nth + 2]; /* allocate 1 extra space to handle fibonacci[0] */
13+
fib[0] = 0;
14+
fib[1] = 1;
15+
for (int i = 2; i <= nth; i++) {
16+
fib[i] = fib[i - 1] + fib[i - 2];
17+
}
18+
return fib[nth];
19+
}
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.examplehub.dynamicprogramming;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class FibonacciDPTest {
8+
@Test
9+
void testFibonacci() {
10+
assertEquals(0, FibonacciDP.fibonacci(0));
11+
assertEquals(1, FibonacciDP.fibonacci(1));
12+
assertEquals(1, FibonacciDP.fibonacci(2));
13+
assertEquals(34, FibonacciDP.fibonacci(9));
14+
}
15+
}

0 commit comments

Comments
 (0)