이번 글에서는 숫자 n을 입력받아 해당 숫자의 팩토리얼(factorial, 계승)을 계산하는 간단한 JavaScript 함수를 작성해 보겠습니다.
팩토리얼이란?
팩토리얼은 1부터 n까지의 모든 양의 정수를 곱한 값으로, 수학 기호로는 n!로 표현합니다. 예를 들어 5! = 5 × 4 × 3 × 2 × 1 = 120입니다. 조합론, 확률 계산 등 다양한 분야에서 활용되는 개념입니다.
알고리즘 접근 방식
가장 직관적인 방법은 반복문을 활용하는 것입니다. 알고리즘의 흐름은 다음과 같습니다.
먼저 결과를 저장할 변수(res)를 1로 초기화합니다. 그다음 입력받은 숫자부터 시작해 1씩 감소시키면서 각 값을 결과 변수에 계속 곱해 줍니다. 이 과정을 카운트 값이 1에 도달할 때까지 반복하면, 최종적으로 결과 변수에 팩토리얼 값이 저장됩니다.
코드 구현
위 로직을 화살표 함수(arrow function) 형태로 구현하면 다음과 같습니다.
const num = 14;
const factorial = num => {
let res = 1;
for(let i = num; i > 1; i--){
res *= i;
};
return res;
};
console.log(factorial(num));
실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 출력이 나타납니다.
87178291200
14! = 87,178,291,200으로, 코드가 정상적으로 동작하는 것을 확인할 수 있습니다.
마무리
이처럼 반복문 하나만으로도 팩토리얼을 손쉽게 계산할 수 있습니다. 참고로 재귀 함수(recursion)를 사용하는 방법도 있으며, 큰 수를 다룰 경우에는 BigInt 타입을 활용하면 더욱 정확한 계산이 가능합니다.