반응형
https://www.acmicpc.net/problem/10757
안녕하세요. 이번 포스팅은 10757번 : 큰 수 A+B입니다.
이번 문제는 정수형의 범위를 다루는 문제입니다.
자바에서 정수를 다루는 데이터 타입에는 아래의 두가지가 있습니다.
DataType | Byte | Max |
int | 4Byte | 2147483647 |
long | 8Byte | 9223372036854775807 |
예제를 보면 9223372036854775808이 있기 때문에 long Max값에 벗어납니다.
BigInteger
자바에서 지원하는 정수형 데이터 타입의 Max 범위 값을 벗어나는 경우 BigInteger를 통해 처리합니다.
BigInteger는 값을 문자열로 처리하기 때문에 어떠한 정수형 숫자든 담을 수 있습니다.
BigInteger 사용법
BigInteger bigNumber = new BigInteger("9999999999999999999");
이름 | 의미 | 리턴값 |
add(BigInteger bigInteger) | 덧셈 | BigInteger bigInteger |
subtract(BigInteger bigInteger) | 뺄셈 | BigInteger bigInteger |
multiply(BigInteger bigInteger) | 곱셈 | BigInteger bigInteger |
devide(BigInteger bigInteger) | 나눗셈 | BigInteger bigInteger |
toString | 문자열로 출력 | String string |
BigInteger의 연산의 리턴 값은 BigInteger의 객체입니다.
연산 후 리턴받은 객체를 toSring()을 통해 값을 출력합니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] num = br.readLine().split(" ");
BigInteger A = new BigInteger(num[0]);
BigInteger B = new BigInteger(num[1]);
BigInteger ans = A.add(B);
bw.write(ans.toString());
br.close();
bw.flush();
bw.close();
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 알고리즘][자바] 1978번 : 소수 찾기 (0) | 2021.08.02 |
---|---|
[백준 알고리즘][자바] 1011번 : Fly me to the Alpha Centauri (0) | 2021.07.30 |
[백준 알고리즘][자바] 2839번 : 설탕 배달 (0) | 2021.07.28 |
[백준 알고리즘][자바] 2775번 : 부녀회장이 될테야 (0) | 2021.07.25 |
[백준 알고리즘][자바] 10250번 : ACM 호텔 (0) | 2021.07.10 |
댓글