[300] 10872번 팩토리얼

younoah·2022년 1월 12일
0

[백준-기초]

목록 보기
26/29

10872번 팩토리얼

문제

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

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.

출력

첫째 줄에 N!을 출력한다.

예제 입력 1 복사

10

예제 출력 1 복사

3628800

예제 입력 2 복사

0

예제 출력 2 복사

1

코드

//---- 세팅 ----//
const fs = require('fs');
const stdin = (
  process.platform === 'linux'
    ? fs.readFileSync('/dev/stdin').toString()
    : `\
10
`
).split('\n');

const input = (() => {
  let line = 0;
  return () => stdin[line++];
})();

//---- 풀이 -----//

const n = Number(input());

const factorial = n => {
  if (n < 0) return 0;
  if (n === 0 || n === 1) return 1;
  return n * factorial(n - 1);
};

console.log(factorial(n));

풀이

재귀의 대표적인 문제이다.

재귀의 종료조건으로 n < 0n === 0 || n === 1 을 정하고
재귀문에서는 현재 값과 n - 1의 재귀를 곱해준다.

profile
console.log(noah(🍕 , 🍺)); // true

0개의 댓글