[Java]백준2338_긴자리 계산

728x90

step 1.         문제 설명 

 

저는 자신감 있게 바로 풀었다고 2,3번 해봤는데 왜 자꾸 실패가 나오는지 알지 못했습니다.

그리고 왜 정답률이 50%인줄 깨달았습니다

당연하게 int,long타입을 변수 A,B를 만들어 입력받은 후 출력하는 문제라고 생각했지만

그게 아니었습니다. 

최대 10진수로 1000자리를 넘을 수 있다는 조건이 있으므로, int나long타입을 범위를 넘어가는 수가 입력될

수 있기 때문에 BigInteger 클래스를 사용해서 풀어야 합니다.

그리고 BigInteger에 있는 메서드인 add(더하기), subtract(빼기) , multiply(곱하기) 를 사용해서 풀 수 있습니다.

 

step 2.         코드 구현하기  

 
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));

        BigInteger A = new BigInteger(br.readLine());
        BigInteger B = new BigInteger(br.readLine());
        br.close();

        System.out.println(A.add(B));
        System.out.println(A.subtract(B));
        System.out.println(A.multiply(B));
    }
}

728x90