Understanding Time Complexity of Dynamic Programming for Fibonacci Numbers