BigInteger
`BigInteger`는 Java에서 정수의 임의 정밀도(arbitrary-precision)를 가지는 클래스입니다. 이 클래스는 매우 큰 크기의 정수를 표현할 수 있어서, int나 long의 범위를 초과하는 정수 연산을 지원합니다.
BigInteger 클래스
`BigInteger` 클래스는 java.math 패키지에 속해 있으며, 여러 연산을 지원합니다. 주요 메서드 중 일부는 다음과 같습니다:
1. `add(BigInteger val)`: 현재 `BigInteger` 객체에 주어진 `BigInteger` 값을 더합니다.
2. `subtract(BigInteger val)`: 현재 `BigInteger` 객체에서 주어진 `BigInteger` 값을 뺍니다.
3. `multiply(BigInteger val)`: 현재 `BigInteger` 객체에 주어진 `BigInteger` 값을 곱합니다.
4. `divide(BigInteger val)`: 현재 `BigInteger` 객체를 주어진 `BigInteger` 값으로 나눕니다.
5. `mod(BigInteger val)`: 현재 `BigInteger` 객체를 주어진 `BigInteger` 값으로 나눈 나머지를 반환합니다.
`BigInteger`는 불변(immutable)한 클래스이므로, 어떤 연산을 수행하더라도 기존의 객체를 변경하지 않고 새로운 `BigInteger` 객체를 반환합니다.
아래는 간단한 예제 코드입니다:
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// BigInteger 객체 생성
BigInteger bigInteger1 = new BigInteger("123456789012345678901234567890");
BigInteger bigInteger2 = new BigInteger("987654321098765432109876543210");
// 덧셈
BigInteger sum = bigInteger1.add(bigInteger2);
System.out.println("Sum: " + sum);
// 뺄셈
BigInteger difference = bigInteger1.subtract(bigInteger2);
System.out.println("Difference: " + difference);
// 곱셈
BigInteger product = bigInteger1.multiply(bigInteger2);
System.out.println("Product: " + product);
// 나눗셈
BigInteger quotient = bigInteger1.divide(bigInteger2);
System.out.println("Quotient: " + quotient);
// 나머지
BigInteger remainder = bigInteger1.mod(bigInteger2);
System.out.println("Remainder: " + remainder);
}
}
이 코드에서는 `BigInteger`를 사용하여 큰 정수 간의 다양한 연산을 수행하는 간단한 예제를 보여줍니다.
'코테 > 개념 정리' 카테고리의 다른 글
제곱근과 합성수 간의 관계 (1) | 2023.12.01 |
---|---|
[Java]. 정수 오버플로우(overflow) (0) | 2023.11.30 |
경우의 수 - 조합(n개의 원소중에서 r개를 선택하여 나열) (0) | 2023.11.30 |
경우의 수 - 순열(n개의 원소에서 r개를 선택하여 나열) (0) | 2023.11.30 |
최대 공약수(GCD), 최소 공배수(LCM), 유클리드호제법 (0) | 2023.11.27 |