int_seq.fibonacci: less recursive, more memory efficient

This commit is contained in:
Stefan Harmuth 2022-12-20 12:09:57 +01:00
parent 798e8c3faa
commit afac0e484d

View File

@ -10,7 +10,6 @@ def factorial(n: int) -> int:
return math.factorial(n)
@cache
def fibonacci(n: int) -> int:
"""
F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1
@ -19,7 +18,11 @@ def fibonacci(n: int) -> int:
if n < 2:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
l, r = 1, 1
for _ in range(n - 2):
l, r = l + r, l
return l
def triangular(n: int) -> int: