목차
📝 문제
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) 이렇게 조건을 줘야 함.
🤔 이것도 한 번 생각해봐요! (참고 자료)
'알고리즘 > node.js' 카테고리의 다른 글
[백준/Node.js] 1037번: 약수 (0) | 2025.02.22 |
---|---|
[백준/Node.js] 1010번: 다리 놓기 (0) | 2025.02.22 |
[프로그래머스/Node.js] 12906번: 같은 숫자는 싫어 (0) | 2025.02.21 |
[프로그래머스/Node.js] 64061번: 크레인 인형뽑기 게임 (0) | 2025.02.21 |
[백준/Node.js] 10773번 : 제로 (0) | 2025.02.21 |