import time

def iterativeFibo(n):
    if n == 1 or n == 2:
        return 1
    
    current = 1
    previous = 1
    count = 2
    while count < n:
        temp = current
        current = previous + current
        previous = temp
        count = count + 1
        
    return current
    

def fibo(n):
    # Base cases
    if n == 1 or n == 2:
        return 1
    # Recursive case
    else:
        return fibo(n-1) + fibo(n-2)
    
# main program
start = time.time()
print(fibo(40))
end = time.time()
print("Slow fibo", end-start)

start = time.time()
print(iterativeFibo(40))
end = time.time()
print("Fast fibo", end-start)

