카테고리 없음

[Java] 백준 2338 긴자리 계산

정보통신 고심이 2023. 9. 26. 21:39

문제

두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 A가, 둘째 줄에 B가 주어진다. 각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다.

출력

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

예제 입력 1 복사

0
2
-1

예제 출력 1 복사

1 -1

 

정답 코드

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

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

import java.math.BigInteger; 를 써야함 

printf 쓰면안됨

(A.add(B))

 

 

 

틀린 코드

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int A = sc.nextInt();
    int B = sc.nextInt();
    sc.close();
    
     System.out.printf("%d\n", A+B);
     System.out.printf("%d\n", A-B);
     System.out.printf("%d\n", A*B);
  
  }
}

컴파일 에러 발생 

정수 범위를 잘 살펴보자