백준 1271번 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BigInteger n = scanner.nextBigInteger();
BigInteger m = scanner.nextBigInteger();
scanner.close();
System.out.println(n.divide(m));
System.out.println(n.remainder(m));
}
}
|
cs |
백준 2338번 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BigInteger bigA, bigB;
bigA = scanner.nextBigInteger();
bigB = scanner.nextBigInteger();
System.out.println(bigA.add(bigB));
System.out.println(bigA.subtract(bigB));
System.out.println(bigA.multiply(bigB));
scanner.close();
}
}
|
cs |
1271번 후기
브론즈 5 문제인데 정답률이 30 % 를 조금 웃돈다.
난 맞을줄 알고 호기롭게 도전했지만 런타임에러...
오타인줄 알고 꼼꼼히 읽고 다시 도전했는데 또 런타임 에러..
문제를 다시 읽어보니까
이런 주옥같은 범위가 눈에 띄었다.
자바 기본 자료형의 범위
double이 10의 308승,, 10의 1000승은 택도 없다.
그래서 찾아낸 녀석이 java.math.BigInteger
BigInteger big = new BigInteger(7687687562398475987349);
이런식으로 써도 되고
BigInteger n = scanner.nextBigInteger();
이렇게 입력받아서 써도 된다.
사칙연산이 일반 연산자로는 안되고 메소드를 이용해야 한다. (비교 할 때도 == 사용 불가, .equals 사용해야한다. )
(사칙연산 말고도 절댓값, 루트 등 많은 기능 제공한다. )
a + b : a.add(b);
a - b : a.subtract(b);
a * b : a.multiply(b);
a / b : a.divide(b);
a % b : a.remainder(b);
쓸 일이 있을진 모르겠지만 새로운걸 알았다. ㅎㅎ
필요하니까 만들었겠지
2338번도 똑같은 맥락이라 추가함
'발전 > JAVA' 카테고리의 다른 글
[백준] 1002 터렛 풀이, 정답코드, 채점결과 (0) | 2022.01.31 |
---|---|
[백준]1010번 다리놓기 풀이 코드/입출력 방식에 따른 성능 개선 (0) | 2022.01.31 |
[Java] 큰 따옴표(" ")와 작은 따옴표(' ') 차이 (1) | 2021.07.14 |
[Java] [경고메시지] editor does not contain a main type (0) | 2021.07.14 |
[Java] [오류] Error occurred during initialization of boot layer (1) | 2021.07.14 |