HackerRank - Extra Long Factorials

세나정·2023년 5월 17일
0

문제

풀이

이 문제는 기존 팩토리얼을 푸는 것이라고 볼 수 있지만 잘보면 결과가 지수표기법이 아닌 진짜 그 값 그대로 모두 표기해야하는 것을 볼 수 있다. 이럴 때 10억 이상의 수도 처리가 가능한 BigInt를 사용하려 했는데, 이 조차도 값과 일치하지 않게나왔다 아무래도 내가 만든 팩토리얼 함수가 문제가 있었던 것 같아. 그래서 생각의 전환으로 BigInt(1)부터 시작하여 정해진 수까지 곱해주고 그 수를 반환하였다.

정답인 BigInt활용 factorial 푸는 방법

내가 풀었던 factorial과 그것을 해결한 예시

[내가 짠 코드에서 bigint를 활용하여 푸는 방법]
function extraLongFactorials(n) {
  function factorial(n) {
    if (n <= 1n) {
      return 1n;
    } else {
      return n * factorial(n - 1n);
    }
  }

  let answer = factorial(BigInt(n));

  console.log(answer.toString());
}
profile
기록, 꺼내 쓸 수 있는 즐거움

0개의 댓글