Added basic fibonacci code in python (code-a1)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# Code-A1 (Fibonacci)
|
||||
# Problem Statement: Write a program non-recursive and recursive program to calculate Fibonacci numbers and analyze their time and space complexity.
|
||||
|
||||
# Initalize global variables
|
||||
iteration_counter = 0
|
||||
recursion_counter = 0
|
||||
|
||||
# Iteration
|
||||
def fibonacci_iteration(n):
|
||||
fib_series = [] # For storing Fibonacci series
|
||||
previous = 0 # Previous
|
||||
current = 1 # Next
|
||||
global iteration_counter # Global iteration counter
|
||||
iteration_counter = 0 # Initialize global iteration counter to 0
|
||||
|
||||
for i in range(n):
|
||||
fib_series.append(previous)
|
||||
previous, current = current, previous + current
|
||||
iteration_counter += 1
|
||||
|
||||
return fib_series
|
||||
|
||||
# Recursion
|
||||
def fibonacci_recursion(n):
|
||||
global recursion_counter # Global recursion counter
|
||||
recursion_counter += 1 # Increment recursion counter for each call
|
||||
|
||||
if (n <= 0): # Handle n less than or equal to 0
|
||||
return 0
|
||||
elif (n <= 1): # Handle n less than or equal to 1
|
||||
return n
|
||||
else: # Recursive call
|
||||
return fibonacci_recursion(n - 1) + fibonacci_recursion(n - 2)
|
||||
|
||||
n = int(input("Enter total numbers to print in fibonacci series:\t"))
|
||||
|
||||
# Fibonacci using iteration
|
||||
fib_series = fibonacci_iteration(n)
|
||||
print(f"Fibonacci using iteration:\t{fib_series}")
|
||||
print(f"Iteration counter:\t{iteration_counter}| Time Complexity: O(n) (linear growth)")
|
||||
|
||||
print("="*80)
|
||||
|
||||
# Fibonacci using recursion
|
||||
fib_series = []
|
||||
for i in range(n):
|
||||
fib_series.append(fibonacci_recursion(i))
|
||||
print(f"Fibonacci using recursion:\t{fib_series}")
|
||||
print(f"Recursion counter:\t{recursion_counter} | Time Complexity: O(2^n) (exponential growth)")
|
||||
|
||||
Reference in New Issue
Block a user