본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 10757번 : 큰 수 A+B

by hyunipad 2021. 7. 28.
반응형

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

 

10757번: 큰 수 A+B

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

www.acmicpc.net

안녕하세요. 이번 포스팅은 10757번 : 큰 수 A+B입니다.

이번 문제는 정수형의 범위를 다루는 문제입니다.

자바에서 정수를 다루는 데이터 타입에는 아래의 두가지가 있습니다.

DataType Byte Max
int 4Byte 2147483647
long 8Byte 9223372036854775807

예제를 보면 9223372036854775808이 있기 때문에 long Max값에 벗어납니다.

 

BigInteger

자바에서 지원하는 정수형 데이터 타입의 Max 범위 값을 벗어나는 경우 BigInteger를 통해 처리합니다.

BigInteger는 값을 문자열로 처리하기 때문에 어떠한 정수형 숫자든 담을 수 있습니다.

 

BigInteger 사용법

BigInteger bigNumber = new BigInteger("9999999999999999999");
이름 의미 리턴값
add(BigInteger bigInteger) 덧셈 BigInteger bigInteger
subtract(BigInteger bigInteger) 뺄셈 BigInteger bigInteger
multiply(BigInteger bigInteger) 곱셈 BigInteger bigInteger
devide(BigInteger bigInteger) 나눗셈 BigInteger bigInteger
toString 문자열로 출력 String string

BigInteger의 연산의 리턴 값은 BigInteger의 객체입니다.

연산 후 리턴받은 객체를 toSring()을 통해 값을 출력합니다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String[] num = br.readLine().split(" ");
		
		BigInteger A = new BigInteger(num[0]);
		BigInteger B = new BigInteger(num[1]);
		
		BigInteger ans = A.add(B);
			
		bw.write(ans.toString());

		br.close();
		bw.flush();
		bw.close();
	}
}

 

반응형

댓글