Algorithm_javascript/17. 조합론

# 백준 10872번 팩토리얼 (javascript, node.js)

luminouswy 2023. 7. 30. 16:13
반응형

백준 10872번 팩토리얼 (javascript, node.js)

문제

 

10872번: 팩토리얼

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

www.acmicpc.net

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


입력

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

출력

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

예제입력 1

10

예제출력 1

3628800

예제입력 2

0

예제출력 2

1

문제풀이

  • 그냥 팩토리얼 구하는 문제
  • 단순하게 반복문으로 n 부터 1까지 반복하여 곱해주는 방법과
  • 재귀함수를 활용하여 푸는 방법이 있다.
// 10872번 팩토리얼


const fs = require('fs');
const file = process.platform === 'linux' ? 'dev/stdin' : './text.txt';
const input= fs.readFileSync(file).toString().trim().split(' ');



const n = input.map(Number);


// 그냥 푸는 방법
//     let result =1;
//     for(i =n; i >=1 ; i--){        
//         result = result* i;
//     }

// console.log(result);


// 재귀 함수 사용
function factorial(n) {
   if(n < 0){
    return -1;
   }else if (n == 0){
    return 1;
   }else{
    return (n * factorial(n -1));
   }

}

console.log(factorial(n));