''' recursivefunctions.py Jeff Ondich, 11/1/09 Some simple recursive functions. -- In each function, what is (are) the base case(s)? -- What happens if you call factorial(100)? How about fibonacci(100)? Why is fibonacci(100) problematic? ''' import sys def factorial(n): if n <= 1: return 1 else: return n * factorial(n - 1) def fibonacci(n): if n <= 1: return 1 else: return fibonacci(n - 2) + fibonacci(n - 1) def isPalindrome(s): if len(s) <= 1: return True if s[0] != s[-1]: return False else: return isPalindrome(s[1:-1]) def printBackwards(s): if len(s) == 0: pass else: printBackwards(s[1:]) sys.stdout.write(s[0]) def getReversedString(s): if len(s) == 0: return '' else: return getReversedString(s[1:]) + s[0]