# Newbie: OverflowError: integer addition - Python data types??

Remco Gerlich scarblac-spamtrap at pino.selwerd.nl
Thu Feb 3 05:21:54 EST 2000

```e.e.sutton at cummins.com wrote in comp.lang.python:
> def Fibonacci(i):
>    fibA=1
>    fibB=1
>    if i == 0:
>       Fibonacci = fibA
>    elif i == 1:
>       Fibonacci = fibB
>    elif i > 1:
>       fib=0
>       for j in range(2, i+1):
>          fib = fibA + fibB
>          fibA = fibB
>          fibB = fib
>       Fibonacci = fib
>    return Fibonacci
>
> Thanks in advance for any tips or suggestions

Personally I like this version best:

def Fibonacci(n):
if n < 0:
raise "ArgumentError", "Argument must be non-negative"
if n < 2:
return 1  # Fibonacci(0) == 1, Fibonacci(1) == 1

# n >= 2
fibA = fibB = 1L
for i in range(2, n+1):
fib = fibA + fibB
fibA = fibB
fibB = fib
return fib

It seems you like to declare your variables first, and that you used
a language that returns things with "Functionname = value". Pascal?

--
Remco Gerlich,  scarblac at pino.selwerd.nl
Murphy's Rules, "Stopwatch battles":
Each turn in Star Fleet Battles works out to one-thirtieth of a
second. During this time, a ship can maneuver, fire all weapons, and
send out a boarding party.

```