[백준 10872 node.js] 팩토리얼

Jessie H·2022년 7월 2일
0

알고리즘 공부

목록 보기
16/20
post-thumbnail

백준 10872 팩토리얼

문제 보러 가기

풀이

팩토리얼이란?

정수! 형식으로 나타내며 1부터 정수까지의 숫자를 모두 곱한 값을 의미

예를 들어 5!
5 x 4 x 3 x 2 x 1 = (5-0) x (5-1) x 5-2 x 5-3 x 5-4 = 120이다.

이걸 코드로 나타내보자

방법 1 (for문)

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

function factorial (num) {
	let result = 1;

    if (num === 0 || num === 1) {
    	return 1;
    }
    
    for (let i = 0; i < num; i++) {
    	result *= (num - i);
    }
    
    return result;
}

console.log(factorial(input));
</script>

방법 2 (IIFE + for문)

<script>
(function () {
	const input = require('fs').readFileSync('/dev/stdin').toString().trim();
    const N = input[0];
    
    function factorial (num) {
    	let result = 1;
        
        if (num === 0 || num === 1) {
        	return 1;
        }
        
        for (let i = 0; i < N; i++) {
        	result *= (num - i);
        }
        
        return result;
    }
    
    console.log(factorial(N));
})();
</script>

방법 3 (재귀함수)

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

function factorial (num) {
    if (num === 0 || num === 1) {
    	return 1;
    }
    
    return num * factorial(num-1);
}

console.log(factorial(input));
</script>

방법 4 (IIFE + 재귀함수)

<script>
function(){
  const input = require('fs').readFileSync('/dev/stdin').toString().trim();

  function factorial (num) {
      if (num === 0 || num === 1) {
          return 1;
      }

      return num * factorial(num-1);
  }

  console.log(factorial(input));
})();
</script>
profile
코딩 공부 기록장

0개의 댓글