July 21st 2018
Factorial이란, 1에서 n까지의 모든 자연수의 곱을 n에 대하여 이르는 것으로 n!로 표기합니다.
For example,
5! = 1 _ 2 _ 3 _ 4 _ 5 ==> 120
아래는 팩토리얼 문제입니다.
Factorial of n: The factorial of n is the product of all the integers preceding n, starting with 1
e.g.:
factorial(3); // => 6
factorial(4); // => 24
factorial(5); // => 120
그리고 다음은 제가 고민해서 짠 함수입니다.
function factorial(n) {
var cur = 1;
for (let i = 1; i <= n; i++) {
cur = cur * i;
}
return cur;
}
factorial(3); // => 6
factorial(4); // => 24
factorial(5); // => 120
코드를 풀어서 보면, 아래와 같이 진행되는 걸 확인할 수 있습니다.
1st iteration | 1 | 1 | |
2nd iteration | 2 | 2 | |
3rd iteration | 3 | 6 | |
4rd iteration | 4 | 24 | |
5rd iteration | 5 | 120 |
=> 1 x 2 x 3 x 4 x 5 = 120
다른 풀이 방법도 검색해 보았습니다 (https://medium.freecodecamp.org)
function factorialize(num) {
if (num < 0) return -1;
else if (num == 0) return 1;
else {
return num * factorialize(num - 1);
}
}
factorialize(5);
설명도 친절하게 잘 나와 있어 함께 옮겨 적어 봅니다.