알고리즘/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)  이렇게 조건을 줘야 함.


🤔 이것도 한 번 생각해봐요! (참고 자료)