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.
More information about the Python-list
mailing list