[BOJ] 10757 큰 수 A+B

황은하·2021년 4월 17일
0

알고리즘

목록 보기
7/100
post-thumbnail

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000)

출력

첫째 줄에 A+B를 출력한다.

예제 입력 1

9223372036854775807 9223372036854775808

예제 출력 1

18446744073709551615


풀이 과정

여기서 비교할 수는 10^10000까지이기 때문에 intlong을 쓸 수 없다.
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 클래스를 사용하였다.

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));
    }
}
profile
차근차근 하나씩

0개의 댓글