728x90

https://www.acmicpc.net/problem/10757

 

10757번: 큰 수 A+B

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

www.acmicpc.net

 

풀이) long보다 큰 수는 어떻게 해결해야 되는지가 관건이다.

문제에 나온 조건이 첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000)이러한데 long 형식은 조건 10^10000에 부합하기에는 한참 부족한 숫자이기 때문에 더 큰 수를 처리하는 함수를 알아야 한다.

 

더 큰 수를 계산하기 위해서 사용하는 BigInteger, BigDecimal클래스 두가지가 있다.

먼저 사용하기 전에 java.math를 import 해줘야한다.

BigInteger클래스 : int, long 타입들보다 더 큰 정수값을 처리하기 위해서 사용한다.

BigDecimal클래스 : float, double 타입들보다 더 정확한 실수값을 처리하기 위해서 사용한다.

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        BigInteger x = sc.nextBigInteger();
        BigInteger y = sc.nextBigInteger();

        //long보다 큰 수는 스스로 더할 수 없어서 n1.add(n2)함수를 이용해서 == n1+n2 더해준다.
        System.out.println(x.add(y));

    }
}
728x90