반응형
처음에 작성한 코드는 다음과 같다. 그런데 런타임 에러가 나서 질문 게시판의 힌트를 보니, 10의 1000승은 int에 담을 수 없을 정도로 큰 수입니다. 라고 한다. 대충 int 보다 훨씬 큰 수를 담을 수 있어야 한다는 뜻으로 이해했다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n,m;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
System.out.println(n/m);
System.out.println(n%m);
}
}
하지만, long을 썼지만 long 도 런타임 에러가 발생했다. 그러면, long보다 더 큰 수를 담을수 있는 건 뭘까? 찾아보니
BigInteger이라고 한다. 근데 BigInteger로 쓰니 n/m, n%m 을 못쓴다.아래 블로그를 참고하면 사용할 수 있는 코드가 뭔지 잘 정리되어있다.
https://kkh0977.tistory.com/161
120. (java/자바) BigInteger 사용해 덧셈, 뺄셈, 곱셈, 나누기, 나머지, 최대공약수, 바이트값 구하기
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Eclipse 개발 언어 : Java /* =========================== */ /* =========================== */ [소스 코드] package AI3; import java.math.BigInteger; public class MainActi
kkh0977.tistory.com
맞았다고 뜬 코드 !
package julyW5;
import java.math.BigInteger;
import java.util.Scanner;
public class B1271 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger n,m;
Scanner sc = new Scanner(System.in);
//n: 가진 돈 m: 생명체 수
n = sc.nextBigInteger();
m = sc.nextBigInteger();
System.out.println(n/m);
System.out.println(n%m);
}
}
반응형