I don’t understand how my code can produce integers bigger than the local max_int! The fibonacci(100) below produces an integer greater than sys.maxsize.
known={0:0,1:1}
def fibonacci(n):
if n in known:
return known[n]
res = fibonacci(n-1) + fibonacci(n-2)
known[n]=res
return res
print(fibonacci(100))
354224848179261915075
type(known[100])
int
import sys
print(sys.int_info)
sys.int_info(bits_per_digit=30, sizeof_digit=4)
print(sys.maxsize)
9223372036854775807
Source: Think Python, version 2.0.17, p107, 2012 Allen Downey.