자바 BigInteger
알고리즘 문제를 풀다보면 int형에서 오버플로우가 나서 long형으로 바꾸는 경우가 종종 있는데 long형에서도 오버플로우가 나는 경우가 있다. 이 때 사용해야 하는 것이 무한을 표현할 수 있는 'BigInteger'이다.
BigInteger에 대한 자세한 내용은 아래 공식 문서에서 확인하면 된다.
https://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html
BigInteger (Java Platform SE 6)
java.math Class BigInteger java.lang.Object java.lang.Number java.math.BigInteger All Implemented Interfaces: Serializable, Comparable public class BigIntegerextends Numberimplements Comparable Immutable arbitrary-precision integers. All operations behave
docs.oracle.com
이 공식 문서를 다 읽기엔 영어이기도하고, 필요한 부분이 아닌 경우도 있으므로 간단한 사용 예시나 필요한 부분을 정리해보았다.
BigInteger 간단 사용법
먼저 BigInteger는 아래와 같이 선언하여 사용한다.
import java.math.BigInteger;
BigInteger bi = new BigInteger("123");
선언 이후 연산은 우리가 사용하는 사칙연산 대신 내장 메소드를 사용하여서 할 수 있다. 선언에 있어서는 꼭 안에 숫자를 넣어줘야 한다.
BigInteger bi1 = new BigInteger("10");
BigInteger bi2 = new BigInteger("100");
System.out.println(bi1.add(bi2));//덧셈
System.out.println(bi1.subtract(bi2));//뺄셈
System.out.println(bi1.multiply(bi2));//곱셈
System.out.println(bi1.divide(bi2));//나눗셈
System.out.println(bi1.remainder(bi2));//모듈러 연산
이 외에도 자주 사용하는 연산으로는 아래와 같은 것들이 있다.
BigInteger[] bi = new BigInteger[5];
bi[0] = BigInteger.ONE;
bi[0] = BigInteger.ZERO;
bi[0] = BigInteger.TEN;
이와 같이 숫자로 초기화 할 때 다음과 같이 사용가능하다.
