implementation of the naive recursive algoritm
implementation of the naive recursive algorithm with memoization
implementation of the dynamic programming algorithm
implementation of a test harness to test each of the solvers