[Basic Algorithm] 수의 계승(팩토리얼)

joyact·2020년 8월 5일
0
post-thumbnail

문제

입력된 숫자를 팩토리얼(!)로 계산하여 출력하세요. 0보다 크거나 같은 정수값만 입력값으로 사용합니다.

팩토리얼 표기법 : n!
5! = 5 x 4 x 3 x 2 x 1 = 120

function factorialize(num) {
  return num;
}

factorialize(5);

조건

  • factorialize(5)는 숫자값을 출력한다.
  • factorialize(5) return 120.
  • factorialize(10) return 3628800.
  • factorialize(0) return 1.

My solution

function factorialize(num) {
  let factorialNum = 1;
  for (let i = 1; i <= num; i++) {
    factorialNum *= i;
  }
  return factorialNum;
}

factorialize(5);

Other's solution

function factorialize(num) {
  return num === 0 ? 1 : num * factorialize(num - 1);
}
factorialize(5);

Review

for문을 사용하여 1부터 입력값에 해당될 때까지 1씩 더하며 모든 수를 곱하는 함수를 만들었다. 반복문을 사용해야만 풀 수 있는 문제라고 생각했는데 전혀 다르게 삼항연산자를 사용한 1줄짜리 솔루션을 보고 다양한 방법으로 문제를 접근하려는 노력을 해야겠다고 느꼈다.



출처 : Basic Algorithm Scripting: Factorialize a Number. freeCodeCamp. Retrieved from https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number

profile
숲을 그리는 개발꿈나무🌳

0개의 댓글