24 lines
646 B
Python
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)}")
|