Dynamic Programming: Fibonacci

Same subproblems solved repeatedly in naive recursion. DP solves each exactly once. Memoization (top-down) caches results; Tabulation (bottom-up) fills a table iteratively.

Set n and choose a method
■ Naive calls: ■ Memo calls: ■ Tabulation: fills