What is the primary reason for using dynamic programming with recursion?
To increase the number of recursive calls.
To avoid redundant calculations by storing results.
To make the code shorter.
To remove the need for a base case.