## frankdpnw 3 years ago I am failing to understand what last return statement does and was wondering if someone could point me to some additional reading material def fib(n) if n ==o: return o if n == 1: return 1 else: return fib(n-1) + fib(n-2) I have run the debugger and added a print statement but that return fib(n-1) + fib( n-2) completely baffles me I called the function print fib(7) which gives me the correct answer of 13 but darned if I can follow the logic Thanks

• This Question is Open
1. bwCA

this function is recursive. The first two 'returns' are the base case. The last one is the recursive call. it calls the function fib() twice with the arguments n-1 and n-2. The Wikipedia entries for recursion is pretty good: http://en.wikipedia.org/wiki/Recursion http://en.wikipedia.org/wiki/Recursion_(computer_science) I'm pretty sure there was an explanation of recursion in one of the lectures (2008). It is not an easy concept to grasp when first exposed to it (my opinion) but when you get it it's cool. Definitely need to take the time to understand it. images help after you've thought about it a while https://www.google.com/search?hl=en&tok=eMAnrt2ijUCk1wMdSZGBbA&pq=recursion+function&cp=12&gs_id=f&xhr=t&q=recursion+stack&newwindow=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&biw=1120&bih=642&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=oscAUKSqN7O02AWdq8WKCw#um=1&hl=en&newwindow=1&tbm=isch&sa=1&q=recursion&oq=recursion&gs_l=img.12..0l10.2232.2232.0.6724.1.1.0.0.0.0.166.166.0j1.1.0...0.0...1c.B5gOJwetQZc&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=4ab5a515e740ecc2&biw=1120&bih=642 there is even a pik in there of the infamous recursive fib

2. frankdpnw

thanks, I finally understand it