글 작성자: 취업중인 피터팬
728x90

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

 

2338번: 긴자리 계산

첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미).

www.acmicpc.net

 

이 문제의 경우 Integer형이나 long형을 사용할 경우 런타임 에러를 발생시킵니다.

java.mati 라이브러리에서 제공하는 BigInteger을 사용해야 정상 입력이 됩니다.

 

정답

import java.util.*;
import java.math.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        BigInteger a = sc.nextBigInteger();
        BigInteger b = sc.nextBigInteger();
        
        System.out.println(a.add(b));
        System.out.println(a.subtract(b));
        System.out.println(a.multiply(b));
    }
}

BigInteger은 스캐너로 받을 때도 BigInteger로 받아야 하고 사칙 연산도 Integer형과 다릅니다.

더하기 : add()
빼   기 : subtract()
곱하기 : multiply()
나누기 : divide()

나머지 : remainder()

로 계산합니다.