## Key Ideas

• A recursive algorithm must have one or more situations where the answer can be immediately calculated. These are the base cases.
• A recursive algorithm must have one or more situations where the algorithm calls itself, either directly or indirectly, with a problem that is easier to solve. These are the general cases.

## Active Learning

• Experiment with convert.py until you fully understand it.
• What is the base case?
• What is the general case?
• Verify that the answers produced for the three test cases are correct.
• Explain why print(convert(100, 1)) produces an error.
• Explain why print(convert(100, 200)) produces an error.
• What is the largest base for which the convert function is correct?
• Uncomment the three statements and supply the missing unconvert function. The function should be recursive and take two parameters. The first parameter is a string representation of a number and the second parameter is the base of the first parameter. The function should calculate and return the base 10 integer equivalent of the first parameter.