* feat(tools): add seed/solution restore script * chore(curriculum): remove empty sections' markers * chore(curriculum): add seed + solution to Chinese * chore: remove old formatter * fix: update getChallenges parse translated challenges separately, without reference to the source * chore(curriculum): add dashedName to English * chore(curriculum): add dashedName to Chinese * refactor: remove unused challenge property 'name' * fix: relax dashedName requirement * fix: stray tag Remove stray `pre` tag from challenge file. Signed-off-by: nhcarrigan <nhcarrigan@gmail.com> Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
1.0 KiB
1.0 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
597b2b2a2702b44414742771 | Factorial | 5 | 302263 | factorial |
--description--
Write a function to return the factorial of a number.
Factorial of a number is given by:
n! = n * (n-1) * (n-2) * ..... * 1
For example:
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
Note: 0! = 1
--hints--
factorial
should be a function.
assert(typeof factorial === 'function');
factorial(2)
should return a number.
assert(typeof factorial(2) === 'number');
factorial(3)
should return 6.
assert.equal(factorial(3), 6);
factorial(5)
should return 120.
assert.equal(factorial(5), 120);
factorial(10)
should return 3,628,800.
assert.equal(factorial(10), 3628800);
--seed--
--seed-contents--
function factorial(n) {
}
--solutions--
function factorial(n) {
let sum = 1;
while (n > 1) {
sum *= n;
n--;
}
return sum;
}