두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000)
첫째 줄에 A+B를 출력한다.
9223372036854775807 9223372036854775808
18446744073709551615
여기서 비교할 수는 10^10000까지이기 때문에 int
와 long
을 쓸 수 없다.
int
-> -2,147,483,648 ~ 2,147,483,647 (-2^31 ~ 2^31-1)
long
-> -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-2^63 ~ 2^63-1)
그래서 이 범위를 넘어서는 수를 다루기 위해 BigInteger 클래스를 사용하였다.
일반적인 연산자는 사용할 수 없다. 대신 .add(), .subtract(), .multiply(), .divide() 메소드가 제공되고 매개변수 또한 BigInteger를 받는다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String numbers[] = br.readLine().split(" ");
BigInteger a = new BigInteger(numbers[0]);
BigInteger b = new BigInteger(numbers[1]);
System.out.println(a.add(b));
}
}