본문 바로가기
백준 알고리즘

[JS]백준 10872번 팩토리얼

by 오늘의코더 2022. 7. 18.
반응형

출처

https://www.acmicpc.net/problem/10872

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

풀이

이 문제는 처음 재귀를 접하는 나에게 꽤 어려운 문제였다. 그래서 다른 분들의 답을 참고하였는데 우선 팩토리얼이라는 함수를 만들고 이 함수는 n을 받을 수 있도록 하였다.

그리고 이 함수는 n* 팩토리얼 함수(n-1)를 리턴하는데 이렇게 계속 재귀가 반복된다. 결국 n이 1보다 작아질 때, 1을 리턴하여서 결국에는 주어진 숫자부터 1까지의 곱(팩토리얼)을 리턴하게 된다.

코드

const fs = require('fs');
const input = Number(fs.readFileSync('/dev/stdin').toString().trim());
const factorial = (n) => {
    if (n < 1) {
        return 1;
    }
    return n * factorial(n - 1);
}
console.log(factorial(input));

반응형

댓글