diff --git a/Maths/WhileLoopFactorial.js b/Maths/WhileLoopFactorial.js index 7e04bbafa1..943fabd8d6 100644 --- a/Maths/WhileLoopFactorial.js +++ b/Maths/WhileLoopFactorial.js @@ -1,15 +1,13 @@ /* - author: Theepag + author: Theepag, optimised by merelymyself */ export const factorialize = (num) => { - // Step 1. variable result to store num - let result = num - // If num = 0 OR 1, the factorial will return 1 - if (num === 0 || num === 1) { return 1 } + // Step 1. Handles cases where num is 0 or 1, by returning 1. + let result = 1 // Step 2. WHILE loop while (num > 1) { + result *= num // or result = result * num; num-- // decrement 1 at each iteration - result = result * num // or result = result * num; } // Step 3. Return the factorial return result diff --git a/Maths/test/WhileLoopFactorial.test.js b/Maths/test/WhileLoopFactorial.test.js new file mode 100644 index 0000000000..6cec49f36d --- /dev/null +++ b/Maths/test/WhileLoopFactorial.test.js @@ -0,0 +1,12 @@ +import { factorialize } from '../WhileLoopFactorial' + +function testFactorial (n, expected) { + test('Testing on ' + n + '!', () => { + expect(factorialize(n)).toBe(expected) + }) +} + +testFactorial(3, 6) +testFactorial(7, 5040) +testFactorial(0, 1) +testFactorial(12, 479001600)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: