출처
백준 온라인 저지
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N! 을 출력하는 프로그램을 작성하시오.
첫째 줄에 정수가 주어진다.
풀이
팩토리얼을 간단히 설명한다면 "어떤 범위에 있는 모든 정수를 곱하는 것을 의미한다" 라고 말할 수 있겠습니다.
팩토리얼을 표시하는 기호는 "!" 입니다. 그리고 주의할 점은 팩토리얼은 1부터 시작합니다.
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
재귀 함수를 사용하여 풀이를 해보았습니다.
0 팩토리얼은 1인 것을 주의해야 합니다.
코드
let input = require('fs').readFileSync('/dev/stdin').toString();
function factorial(num) {
if (num <= 1) {
return 1;
}
return num * factorial(num - 1);
}
console.log(factorial(input));
다른 방식
for 문을 돌려 i 값을 계속 곱해주고 해당 값을 출력해줍니다.
let input = require('fs').readFileSync('/dev/stdin').toString();
let result = 1;
for (let i = 1; i <= input * 1; i++) {
result *= i;
}
console.log(result);