sanity check--what am I doing wrong copying the fibonacci function?

8 years agoI think this is exactly what Professor Guttag uses in Lecture 13: def fib(n): global numCalls numCalls += 1 print 'fib called with ', n if n <= 1: return 1 else: return fib(n-1) + fib(n-2) numCalls = 0 n = 6 res = fib(n) print 'fib of ', n,' = ',res, 'numCalls = ',res but when I run it, it gives me fib(6) = 13 What am I missing?

8 years agoNevermind. 13 is the answer he got in the lecture as well. I was just printing res instead of numCalls and that got me confused. Although, according to http://en.wikipedia.org/wiki/Fibonacci_number, fib(6) actually IS 8, which is what he 'corrects' early in the lecture.

8 years agoFib(n) is the sum of the previous two numbers in the series. It's traditional to start with 0,1 which makes fib(6)=8 (the series is 0,1,1,2,3,5,8). But, you can also start with 1,1 (which is easier to code; if n<=1 return 1), which makes fib(6)=13 (the series is 1,1,2,3,5,8,13).

8 years agoThanks!

8 years ago