https://www.acmicpc.net/problem/10757
10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)
출력
첫째 줄에 A+B를 출력한다.
예제 입력1
9223372036854775807 9223372036854775808
예제 출력1
18446744073709551615
해결방법
일반적으로 A+B를 구하는 것으로는 틀린 답안이 나온다.
바로 큰 수를 계산할 수 있는 Bigint를 사용해야 하기 때문.
Bigint 란?
BigInt는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체이다.
Bigint의 type은 Bigint이다. 따라서 내장 Math 객체의 메소드와 함께 사용할 수 없고, 연산할 때 일반 Number와 혼합해서 사용할 수 없다. Bigint는 Bigint 끼리만 계산이 가능하다.
또한 Bigint의 경우 정수 뒤에 n이 붙어서 출력되기 때문에 계산할 땐 문제없으나 최종 출력 값에는 toString으로 문자열로 변환해주어야 한다.
전체 코드
const fs = require('fs');
let [A, B] = fs.readFileSync('/dev/stdin').toString().trim().split(' ');
A = BigInt(A);
B = BigInt(B);
const sum = A + B;
console.log(sum.toString());
참고 사이트
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt
BigInt - JavaScript | MDN
BigInt는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.
developer.mozilla.org
'알고리즘 > 백준' 카테고리의 다른 글
[JavaScript] 백준 기본수학2 #11653번 소인수분해 (0) | 2022.07.20 |
---|---|
[JavaScript] 백준 기본수학2 #2581 소수 (0) | 2022.07.20 |
[JavaScript] 백준 기본수학2 #1978번 소수 찾기 (0) | 2022.07.16 |
[JavaScript] 백준 입출력과 사칙연산 #10430 나머지 (0) | 2022.07.12 |
[JavaScript]백준 입출력과 사칙연산 1000번 A+B (0) | 2022.07.12 |