fibonacci series what Iam is missing ?

Dave Angel davea at davea.name
Mon Mar 23 12:16:29 EDT 2015


On 03/23/2015 12:01 PM, Ganesh Pal wrote:
> Hello team ,
>
>
> [root at localhost Python]# cat  fibonacci-Sequence-3.py
>
> ## Example 2: Using recursion
> def fib(n):
>      if n == 0:
>          return 0
>      elif n == 1:
>          return 1
>      else:
>          return fib(n-1) + fib(n-2)
> print fib(5)
>
> # python  fibonacci-Sequence-3.py
> 5
>
> what Iam I missing in the program , I was expecting 0,1,1,2,3 ?
>

You're missing the loop at top-level.  The function as written 
calculates a single value, by using recursion.  While it's true that the 
function also calculates the lower-numbered values, it doesn't print them.

Printing is (rightly) only done at the top-level, and that's where you'd 
need a loop.

An entirely separate question is whether you can gain performance by 
caching intermediate values.  For example, if you capture values in a 
list, you could potentially save a lot of time, at least for non-trivial 
values of n.

-- 
DaveA



More information about the Python-list mailing list