From 4b59767dc663371b120617343fbec4a2f706d5f5 Mon Sep 17 00:00:00 2001 From: froge Date: Thu, 31 Jul 2025 17:42:34 +1000 Subject: [PATCH] Fix bugs and clean up python factorial code --- factorial_examples/factorial.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/factorial_examples/factorial.py b/factorial_examples/factorial.py index 0111185..17a08a4 100644 --- a/factorial_examples/factorial.py +++ b/factorial_examples/factorial.py @@ -1,20 +1,24 @@ def factorial(n: int) -> int: if n < 2: - return n + return 1 else: return n * factorial(n-1) def factorial_iter(n: int) -> int: fact = 1 - # Grab absolute value to ensure n is a positive integer - n = abs(n) 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)}")