728x90

문제

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

입력

첫째 줄에 A와 B (-1010000  A, B ≤ 1010000)가 주어진다.

출력

첫째 줄에 A+B를 출력한다.

서브태스크 1 (5점)

  • 0 ≤ A, B ≤ 10

서브태스크 2 (10점)

  • -100 ≤ A, B ≤ 100

서브태스크 3 (10점)

  • 0 ≤ A, B ≤ 109

서브태스크 4 (15점)

  • -109  A, B ≤ 109

서브태스크 5 (15점)

  • 0 ≤ A, B ≤ 260

서브태스크 6 (20점)

  • -260  A, B ≤ 260

서브태스크 7 (20점)

  • 0 ≤ A, B ≤ 1010000

서브태스크 8 (5점)

  • -1010000  A, B ≤ 1010000

예제 입력 1 복사

1 2

예제 출력 1 복사

3

예제 입력 2 복사

-60 40

예제 출력 2 복사

-20

예제 입력 3 복사

-999999999 1000000000

예제 출력 3 복사

1

예제 입력 4 복사

1099511627776 1073741824

예제 출력 4 복사

1100585369600

예제 입력 5 복사

123456789123456789123456789 987654321987654321987654321

예제 출력 5 복사

1111111111111111111111111110


 

 

문제는 단순히 A+B를 구하는 문제이다. 

하지만 A와 B의 범위가 기본 자료형으론 표현이 불가능한 범위라는 점이 문제점이다.

C++로 풀기위해선 String을 이용해서 이것저것 귀찮게 구현해야하는데, 

Java는 BigInteger란 자료형이 이미 구현되어 있어서, 덕분에 편하게 문제를 해결할 수 있었다.

 

코드 원본 : https://github.com/chosh95/Java/blob/master/project/tmp/src/tmp/AB_9.java

 

chosh95/Java

Java 공부. Contribute to chosh95/Java development by creating an account on GitHub.

github.com

 

JAVA 코드

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

public class AB_9 {

	public static void main(String args[]) {
		Scanner scanner = new Scanner(System.in);
		BigInteger A, B, res;
		A = scanner.nextBigInteger();
		B = scanner.nextBigInteger();
		res = A.add(B);
		System.out.println(res);
	}
}
728x90

+ Recent posts