Renamed code-a1. Appended optmized.

This commit is contained in:
K
2025-11-06 15:28:10 +05:30
parent c27d224e93
commit fbaf0330da
@@ -1,7 +1,14 @@
# Problem Statement: Write a program non-recursive and recursive program to calculate Fibonacci numbers and analyze their time and space complexity.
## NOTE: THIS IS A HEAVILY OPTIMIZED CODE FOR FIBONACCI.
## NUMBER OF RECURSION CALLS (IN RECURSION) ARE LOWER THAN NUMBER OF ITERATIONS (IN ITERATION FUNCTION)
iteration_counter = 0
recursion_counter = 0
# Non-recursion
def fibonacci(n):
global iteration_counter
fib_series = []
a = 0
b = 1
@@ -9,11 +16,14 @@ def fibonacci(n):
for i in range(n):
fib_series.append(a)
a, b = b, a + b
iteration_counter += 1
return fib_series
# Recursion
def fibonacci_recursive(n):
global recursion_counter
recursion_counter += 1
if n <= 0:
return []
elif n == 1:
@@ -28,6 +38,9 @@ def fibonacci_recursive(n):
# Non-recursion
n = int(input("Enter total numbers to print in fibonacci series:\t"))
print("Fibonacci Series (non-recusive):\t", fibonacci(n))
print("Iteration counter:\t", iteration_counter)
# Recursion
print("Fibonacci Series (recusive):\t\t", fibonacci_recursive(n))
print("Recursion counter:\t", recursion_counter)