On 03/23/2015 12:01 PM, Ganesh Pal wrote:
Hello team ,


[root@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
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to