code_examples/factorial_examples/factorial.py

24 lines
646 B
Python

def factorial(n: int) -> int:
if n < 2:
return 1
else:
return n * factorial(n-1)
def factorial_iter(n: int) -> int:
fact = 1
for i in range(2, n+1):
fact *= i
return fact
user_input = int(input("Insert number to calculate factorial for: "))
# Get absolute value to force integer into positive range
user_input = abs(user_input)
# Avoid recursion limit
if user_input < 1000:
print(f"Recursive factorial {user_input}: {factorial(user_input)}")
else:
print(f"Recursive factorial {user_input}: [Recursion limit error]")
print(f"Iterative factorial {user_input}: {factorial_iter(user_input)}")