728x90

※ 문제

출처 : (https://www.acmicpc.net/problem/10757)

 


1. 설명

 

문제에서 요구하는 숫자 범위 : 1010000

int 범위 : 231-1

long 범위 : 263-1

BigInteger범위 : 무한

 

큰 숫자를 연산하는 경우는 보통 int를 long으로 변환 후 연산을 하는 경우가 있다. 왜냐하면 int의 범위는 231-1이고, long의 범위는 263-1 으로 int < long이기 때문이다. 하지만 해당 문제는 1010000의 크기까지 연산을 요구하고 있기 때문에 long의 범위를 초과하므로 사용할 수 없다.

 

이 경우 BigInteger를 사용하면 연산할 수 있다. 범위가 무한이기 때문에 바로 연산이 가능하다. 자세한 내용은 아래 URL에서 확인하자.

 

https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html

 

BigInteger (Java Platform SE 8 )

Immutable arbitrary-precision integers. All operations behave as if BigIntegers were represented in two's-complement notation (like Java's primitive integer types). BigInteger provides analogues to all of Java's primitive integer operators, and all relevan

docs.oracle.com

 

2. BigInteger 성공 코드

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

public class BigNumber {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String inputData = scan.nextLine();

        String[] arr = inputData.split(" ");
        BigInteger A = new BigInteger(arr[0]);
        BigInteger B = new BigInteger(arr[1]);

        A = A.add(B);

        System.out.println(A.toString());
    }
}

 

728x90
TOP