JavaScript 백준 10872 팩토리얼

0min·2021년 6월 15일
0
post-custom-banner

🔥백준 10872 팩토리얼

https://www.acmicpc.net/problem/10872


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

function factorial(num) {
  if (num < 1) return 1;
  
  end_num = 1;
  
  if (num == end_num) return end_num;
  else return num * factorial(num - 1);
}

console.log(factorial(input));

🧵풀이

반복문으로 풀어도 되는 문제이지만 재귀함수를 사용해서 풀어보았다.
우선 재귀함수란 간단하게 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는
방식의 함수를 의마한다고 한다. 즉 반복문과 재귀함수는 서로 구현이 가능하다.

이 경우 종료 조건이 꼭 포함되어있어야 한다는 것을 항상 인지해야한다.

입력값을 받게되면 factorial(num)함수 안으로들어가 num가 0일경우에는 1을 return 받고
그렇지 않을경우에는 end_num를 1로 지정해주고 num가 end_num와 같아질 경우 즉 1이 될
경우에는 1을 return받고 그렇지않으면 fnum * factorial(fnum - 1)을 return 받는다

그렇게 되면 재귀함수로 인해 다시 factorial(num)를 실행하게되고 최종적으로는 입력값부터
1까지의 곱의 값을 얻을 수 있게된다.


공부하는 중이라 글이 깔끔하지 못하거나 틀린부분이 있을 수 있습니다.
더 좋은 방법이 있거나 부족한 부분이 존재한다면 말씀해주십쇼😮

profile
🐔이되고 싶은 🐥..
post-custom-banner

0개의 댓글