You are on page 1of 1

import time

def fibonacci_recursive(n):
if n <= 0:
return [], []
elif n == 1:
return [0], [0]
elif n == 2:
return [0, 1], [0, 0]
else:
fib_sequence, execution_times = fibonacci_recursive(n-1)
start_time = time.time()
next_number = fib_sequence[-1] + fib_sequence[-2]
end_time = time.time()
execution_time = end_time - start_time
fib_sequence.append(next_number)
execution_times.append(execution_time)
return fib_sequence, execution_times

# Prompt the user for input


n = int(input("Enter the number of Fibonacci numbers you want to generate: "))

# Calculate Fibonacci numbers and perform empirical analysis for every recursion
fibonacci_result, recursion_execution_times = fibonacci_recursive(n)

# Print the result


print(f"The first {n} Fibonacci numbers are: {fibonacci_result}")

# Print execution times for every recursion


print("Execution times for every recursion:")
for i, time_taken in enumerate(recursion_execution_times):
print(f"Recursion {i+1}: {time_taken:.6f} seconds")

# Print the total execution time for the algorithm


total_execution_time = sum(recursion_execution_times)
print(f"Total execution time for the algorithm: {total_execution_time:.6f}
seconds")

You might also like