원문 및 번역
The factorial of the integer n, written n!, is defined as:
정수 n의 팩토리얼은 n!로 쓰며, 다음과 같이 정의한다.
n! = n * (n-1) * (n-2) * … 3 * 2 * 1
Calculate and print the factorial of a given integer.
주어진 정수의 팩토리얼을 계산하여 출력한다.
For example, if , we calculate and get .
예를들어, n=30이면, 30*29*…2*1 을 계산하고 결과로265252859812191058636308480000000 를 얻을 수 있다.
Function Description
Complete the extraLongFactorials function in the editor below. It should print the result and return.
아래 에디터에서 extraLongFactorials 함수를 완성하라. 결과를 출력하고 리턴하라
extraLongFactorials has the following parameter(s):
n : an integer
extraLongFactorials 함수는 아래와 같은 파라미터를 갖는다.
n : 정수
Note: Factorials of can't be stored even in a long long variable.
참고 : long long 변수에는 팩토리얼을 저장할 수 없다.
Big integers must be used for such calculations.
그러한 계산에는 Big integers를 사용해야 한다.
Languages like Java, Python, Ruby etc. can handle big integers, but we need to write additional code in C/C++ to handle huge values.
자바, 파이썬, 루비 외 기타 등등은 big integers를 다룰 수 있지만 C/C++로 큰 값을 다루는 것에는 추가적인 코드가 필욯다ㅏ.
We recommend solving this challenge using BigIntegers.
우린 BinIntegers를 사용하여 과제를 해결하길 추천한다.
Input Format
Input consists of a single integer n
입력은 단일 정수 n으로 구성된다.
Constraints
1 <= n <= 100
Output Format
Print the factorial of n.
팩토리얼 n을 출력한다.
Sample Input
25
Sample Output
15511210043330985984000000
Explanation
25*24*23*3*2*1
문제 해결 방법
자바스크립트의 경우에는 bigInt를 사용하면 간단하게 해결할 수 있다.
하지만 bigInt는 나름대로 아주 큰 문제가 있는데,
IE와 엣지가 bigInt를 지원하지 않는다는 것이다.
대규모 프로젝트에서는 일반적으로 IE가 표준이기 때문에 bigInt를 통해 클라이언트 로직을 작성하면 안된다.
굳이 큰 수 표현이 필요하다면 별도의 Big Number 라이브러리를 도입해야 한다.
직접 작성하는것은 문제에서 나왔듯이 굉장히 가치있는 작업이지만 귀찮기 때문에 다음에 작업하도록 하겠다.
소스코드
1
2
3
4
5
6
7
8
|
extraLongFactorials(n) {
var result = 1n;
n = BigInt(n)
for(var i=1n;i<=n;i++){
result *=i;
}
console.log(result.toString(10));
}
|
cs |
'알고리즘' 카테고리의 다른 글
Array Manipulation Javascript로 풀기 + 해설 (0) | 2020.07.17 |
---|---|
Minimum Swaps 2 자바스크립트로 풀기 (0) | 2020.07.13 |
New Year Chaos Javascript로 풀기 (0) | 2020.07.09 |
Climbing the Leaderboard javascript 번역 및 풀이 (0) | 2019.10.14 |
Forming a Magic Square hackerrank 자바스크립트 번역 및 풀이 (0) | 2019.10.10 |