hahn

[JAVA] BigInteger을 이용한 큰 수 연산 본문

개발 공부/JAVA

[JAVA] BigInteger을 이용한 큰 수 연산

hahn 2021. 9. 15. 17:06
728x90
반응형

Botherahn :: [백준 - JAVA] 엄청난 부자2 (tistory.com)

 

[백준 - JAVA] 엄청난 부자2

1271번: 엄청난 부자 2 (acmicpc.net) 1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net..

ahnstu.tistory.com

이 문제를 풀면서 도저히 해답이 안 나와서 검색해봤는데

 

BigInteger을 알게되었다.

 

기존에 내가 사용하던 숫자 자료형에는

type scope
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와 long이 있다.

 

얘네 보다 큰 수가 나오면 String으로 입력받아

 

연산 처리를 구현해야 하는데

 

10^1000와 같이 무한대에 가까운 숫자의 연산 구현은

 

쉽지 않다...

 

하지만

 

놀랍게도 BigInteger의 숫자 범위는 무한하다!!!!!!

 

그렇기 때문에 BigInteger를 사용하면 편리하다.

 

 


BigInteger(Scanner 이용하여 값 받기)

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

class Main{
	public static void main(String[] args){
    
		Scanner sc = new Scanner(System.in);

		BigInteger a = sc.nextBigInteger();
        
        System.out.println(a);
        
    }
}

BigInteger의 연산

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

class Main{
	public static void main(String[] args){
    
		Scanner sc = new Scanner(System.in);

		BigInteger a = sc.nextBigInteger();
		
		BigInteger b = sc.nextBigInteger();
        
        System.out.println(a.add(b));
        System.out.println(a.subtract(b));
        System.out.println(a.multiply(b));
        System.out.println(a.divide(b));
        System.out.println(a.remainder(b));
        
    }
}

 

위와 같이 하면 큰 수 연산을 쉽게 할 수 있다.

 

++

BigInteger의 변수에 .을 찍으면 메서드 여러 가지가

 

뜨는데 설명을 자세히 보면 +-%*형식으로 설명이 나와있다

(이클립스 한정)

728x90
반응형