top-down bottom-up approach for fibonacci