Break down the problem before you code.
Have you considered the case where n is negative?
The recursion depth might exceed the stack limit here.