print range (1, 20, 2) print range (1, 20) print range (20) a, b, n = 0, 1, 1 while b < 10000: print "fib(", n, ") = ", b a, b = b, a+b n = n+1 print "----- end of part 0 ----" def fib (n): if n <= 2: return 1 else: return fib(n-1) + fib(n-2) for n in range (1, 20): print "fib(", n, ") = ", fib(n) print "----- end of part 1 ----" def fib1 (n): a, b, k = 0, 1, 1 while k < n: a, b = b, a+b k = k + 1 return b for n in range (1, 20): print "fib(", n, ") = ", fib1(n) print "----- end of part 2 ----" def fib3 (n, a, b): if n <= 1: return a elif n == 2: return b else: return fib3(n-1, b, a+b) def fib2(n): return fib3(n, 1, 1) for n in range (1, 20): print "fib(", n, ") = ", fib2(n) print "----- end of part 3 ----"