# [Algorithm/JS] 백준 10872번 팩토리얼

🔗 문제 바로가기 (opens new window)

# Question

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

# Input

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

# Output

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

# Input 1

10
1

# Output 1

3628800
1

# Input 2

0
1

# Output 2

1
1

# Solution

const input = Number(require('fs').readFileSync('dev/stdin').toString().trim());

function factorial(n) {
  if (n < 2) return 1;
  else return n * factorial(n - 1);
}

console.log(factorial(input));
1
2
3
4
5
6
7
8

팩토리얼은 그 수 보다 작거나 같은 모든 양의 정수의 곱을 말한다.

1! = 1
2! = 2 _ 1 = 2
3! = 3 _ 2 _ 1 = 6
4! = 4 _ 3 _ 2 _ 1 = 24

반복문을 통해 충분히 풀 수 있는 문제지만 해당 문제는 ‘재귀함수'를 다루는 단계이기 때문에 반복문을 사용하지 않았다.

입력값이 1이라면 팩토리얼 연산이 필요없기 때문에 2보다 작은 수는 그대로 1을 반환하며 2보다 큰 수는 재귀함수를 통해 곱해 나간다.

Last Updated: 2022. 6. 5. 오후 3:42:39