''' 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): print 'Starting factorial(%d)' % (n) if n == 1: result = 1 else: result = n * factorial(n - 1) print 'Ending factorial(%d) = %d' % (n, result) return result def fibonacci(n): if n <= 1: result = 1 else: result = fibonacci(n - 2) + fibonacci(n - 1) return result 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] n = int(raw_input('number please: ')) print '%d! = %d' % (n, factorial(n))