diff --git a/src/algorithms/math/factorial/__test__/factorialRecursive.test.js b/src/algorithms/math/factorial/__test__/factorialRecursive.test.js index 9029faee0a..fefde646de 100644 --- a/src/algorithms/math/factorial/__test__/factorialRecursive.test.js +++ b/src/algorithms/math/factorial/__test__/factorialRecursive.test.js @@ -7,5 +7,6 @@ describe('factorialRecursive', () => { expect(factorialRecursive(5)).toBe(120); expect(factorialRecursive(8)).toBe(40320); expect(factorialRecursive(10)).toBe(3628800); + expect(factorialRecursive(-1)).toBe(undefined); }); }); diff --git a/src/algorithms/math/factorial/factorial.js b/src/algorithms/math/factorial/factorial.js index 6c717d051f..97d0b8ca92 100644 --- a/src/algorithms/math/factorial/factorial.js +++ b/src/algorithms/math/factorial/factorial.js @@ -3,6 +3,7 @@ * @return {number} */ export default function factorial(number) { + let result = 1; for (let i = 2; i <= number; i += 1) { diff --git a/src/algorithms/math/factorial/factorialRecursive.js b/src/algorithms/math/factorial/factorialRecursive.js index e2b4aec6c9..9f2f768599 100644 --- a/src/algorithms/math/factorial/factorialRecursive.js +++ b/src/algorithms/math/factorial/factorialRecursive.js @@ -3,5 +3,13 @@ * @return {number} */ export default function factorialRecursive(number) { - return number > 1 ? number * factorialRecursive(number - 1) : 1; + if(number < 0){ + return undefined + } + else if(number === 0 || number === 1){ + return 1 + } + else{ + return number * factorialRecursive(number - 1) + } }