''' recursion.py Jeff Ondich, 2 November 2018 A few recursive functions for discussion and experimentation in CS111, Fall 2018. ''' import sys def factorial(n): if n <= 1: result = 1 else: a = factorial(n - 1) result = n * a return result def fibonacci(n): if n <= 2: result = 1 else: a = fibonacci(n - 1) b = fibonacci(n - 2) result = a + b return result def reverse_string(s): if s == '': result = '' else: a = reverse_string(s[1:]) result = a + s[0] return result def e_count(s): print('e_count({0})'.format(s)) count = 0 if s != '': count = e_count(s[1:]) # count e's in the tail if s[0] == 'e': count = count + 1 print('e_count({0}) = {1}'.format(s, count)) return count def infinite_recursion(n): print('infinite_recursion({0})'.format(n)) return infinite_recursion(n - 1) def infinite_loop(n): print('infinite_loop({0})'.format(n)) while True: print(n) n = n - 1 #n = int(sys.argv[1]) #result = fibonacci(n) #print('fib({0}) = {1}'.format(n, result)) #s = sys.argv[1] #count = e_count(s) #print('The number of e\'s in "{0}" is {1}'.format(s, count))