From e03622607e5ed472a7375110797a8ee6090eb8e8 Mon Sep 17 00:00:00 2001 From: harshitha1106 Date: Sun, 1 Feb 2026 13:13:45 +0530 Subject: [PATCH] add docstring explaining factorial function --- maths/factorial.py | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/maths/factorial.py b/maths/factorial.py index ba61447c7564..835d6b3de0e9 100644 --- a/maths/factorial.py +++ b/maths/factorial.py @@ -3,36 +3,14 @@ """ -def factorial(number: int) -> int: +def factorial(n): """ - Calculate the factorial of specified number (n!). - - >>> import math - >>> all(factorial(i) == math.factorial(i) for i in range(20)) - True - >>> factorial(0.1) - Traceback (most recent call last): - ... - ValueError: factorial() only accepts integral values - >>> factorial(-1) - Traceback (most recent call last): - ... - ValueError: factorial() not defined for negative values - >>> factorial(1) - 1 - >>> factorial(6) - 720 - >>> factorial(0) - 1 + Returns the factorial of a non-negative integer n. + Uses recursion. """ - if number != int(number): - raise ValueError("factorial() only accepts integral values") - if number < 0: - raise ValueError("factorial() not defined for negative values") - value = 1 - for i in range(1, number + 1): - value *= i - return value + if n == 0: + return 1 + return n * factorial(n - 1) def factorial_recursive(n: int) -> int: