Skip to content

Commit

Permalink
Issue darpanjbora#1: Add Fibonacci Dynamic Programming
Browse files Browse the repository at this point in the history
  • Loading branch information
augustojaba committed Oct 13, 2019
1 parent 1ff1c3c commit bad9a57
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions Dynamic Programming/Fibonacci.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* This is a algorithm to implement the Fibonacci Nth element problem
* using dynamic programming paradigm. This version I am using the memoization
* strategy to going top-down to find all needed values and store on the fiboMemo array.
*
* @author Augusto Baltazar ([email protected])
*/
public class Fibonacci {

private int[] fiboMemo;

private int findNthElement(int n) {

if (this.fiboMemo == null) {
fiboMemo = new int[n + 1];
}

if (n <= 1) {
fiboMemo[n] = n;
} else {
fiboMemo[n] = findNthElement(n - 1) + findNthElement(n - 2);
}

return fiboMemo[n];
}

/**
* Tests the function to the given number passed as argument
* @param args
*/
public static void main(String[] args) {
try {
int arg = Integer.parseInt(args[0]);
System.out.println(new Fibonacci().findNthElement(arg));
} catch (Exception e) {
System.out.println("The argument entered is not a valid integer number.");
}
}
}

0 comments on commit bad9a57

Please sign in to comment.