알고리즘/node.js
[백준/Node.js] 10872번: 팩토리얼
minliz
2025. 2. 21. 21:02
목차
📝 문제
https://www.acmicpc.net/problem/10872
📝 문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
🎯 알고리즘
💡 문제 접근
팩토리얼 문제 ->재귀 함수 사용
✅ 실습 인증 _코드
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split("\n");
const n = parseInt(input[0]);
function f(n) {
if(n===1 || n===0){
return 1;
}
return n* f(n-1);
}
console.log(f(n));
⚡ 트러블 슈팅
🌱 처음에는 if(n===1) 조건만 작성
0! = 1 -> 입력 값이 0일 경우에는 무한 재귀 호출에 빠져서 Maximum call stack size exceeded 에러가 발생
(n === 0 || n === 1) 이렇게 조건을 줘야 함.
🤔 이것도 한 번 생각해봐요! (참고 자료)