Fibonacci

Sun 29 June 2025
def fib(n):
    if n <= 1:
        return n
    else:
        return fib(n - 1) + fib(n - 2)
print(fib(0))  # Expected output: 0
print(fib(1))  # Expected output: 1
0
1
print(fib(8))  # Expected output: 21
21
def fib_list(n):
    return [fib(i) for i in range(n + 1)]

print(fib_list(8))  # Expected output: [0, 1, 1, 2, 3, 5, 8, 13, 21]
[0, 1, 1, 2, 3, 5, 8, 13, 21]
def fib_iterative(n):
    a, b = 0, 1
    seq = []
    for _ in range(n + 1):
        seq.append(a)
        a, b = b, a + b
    return seq

print(fib_iterative(8))  # [0, 1, 1, 2, 3, 5, 8, 13, 21]
[0, 1, 1, 2, 3, 5, 8, 13, 21]
import time

n = 30

start = time.time()
print(f"Recursive fib({n}) =", fib(n))
print("Time taken (recursive):", time.time() - start)

start = time.time()
print(f"Iterative fib_list({n}) =", fib_iterative(n)[n])
print("Time taken (iterative):", time.time() - start)
Recursive fib(30) = 832040
Time taken (recursive): 0.30800914764404297
Iterative fib_list(30) = 832040
Time taken (iterative): 0.0


Score: 5

Category: basics