[백준알고리즘] 10757번 큰 수 A+B (JAVA)
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)
출력
첫째 줄에 A+B를 출력한다.
예제
풀이
import java.math.BigInteger;
import java.util.Scanner;
public class Boj_10757 {
public static void main(String[] args) throws java.lang.Exception {
Scanner sc = new Scanner(System.in);
BigInteger A = sc.nextBigInteger();
BigInteger B = sc.nextBigInteger();
System.out.println(A.add(B));
}
}
문제가 너무 간단해서 뭐지? 했는데 세상은 그렇게 녹록치 않았다.
Type | 범위 |
int | -2,147,483,648 ~ 2,147,483,647 |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
제일 큰 범위라고 알고있는 long type의 범위를 찾아보니 주어진 문제의 범위보다 큰 상황.
그래서 검색해보니 java에 BigInteger라는 클래스를 임포트해서 사용하면 된다.
무한의 정수가 들어갈 수 있는 가능성이 있다면 BigInteger를 활용하는 것이 좋다.
덧셈은 위의 코드처럼 A.add(B)로 써주면 된다.
BigInteger은 문자열이기에 사칙연산이 안되기 때문에 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용한다.
연산 | 사용법 |
덧셈 | A.add(B); |
뺄셈 | A.subtract(B); |
곱셈 | A.multiply(B); |
나눗셈 | A.divide(B); |
나머지 | A.remainder(B); |
참고
coding-factory.tistory.com/604
[Java] 큰 숫자(정수) 다루기 BigInteger 사용법 & 예제 총정리
BigInteger를 사용해야 하는 이유 Type 범위 int -2,147,483,648 ~ 2,147,483,647 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 int는 메모리 크기는 4byte로 표현할 수 있는 범위는 -2,147,483,..
coding-factory.tistory.com
출처
10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net