먹었으면 뇌를 쓰자
백준 10869 java - 사칙연산 본문
문제
정답 (*floorDiv, floorMod - 몫과 나머지를 반환하는 메소드)
검색을 통해서 floorDiv와 floorMod 메소드를 찾아내기는 했다.
이전 A/B 문제에서 소수점 아래를 표현하기 위해
정수형 int가 아닌 실수형 double을 썼던 것이 생각났다.
floorDiv는 차치하고, floorMod를 나타내려면 double을 써야 한다고 판단했다.
그러자 아래와 같은 오류 메시지가 떴다.
Main.java:12: error: no suitable method found for floorDiv(double,double)
다시 검색을 해보니 floorDiv 메소드는 int 변수를 받아서
(몫이니까 당연하게도) int 값을 반환한다.
floorMod 메소드 또한 int로 나머지 '값'만 반환한다.
따라서 변수를 int로 지정하면 해결되는 문제이다.
import java.util.Scanner;
public class Main {
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println(A+B);
System.out.println(A-B);
System.out.println(A*B);
System.out.println(Math.floorDiv(A,B));
System.out.println(Math.floorMod(A,B));
}
}
자료를 참고한 geeksforgeeks.org에서
floorDiv와 floorMod의 관계까지 쉽게 이해할 수 있었다.
floorDiv(a,b)*b + floorMod(a,b) == a
// a는 나눠지는 수, b는 나누는 수
(+풀이 추가)
BufferedReader 클래스를 이용하면 이렇게 된다.
입력 값이 한 줄 단위로 들어오므로 StringTokenizer 클래스 사용해주기~
<참고자료>
Math floorDiv() Method in Java
https://www.geeksforgeeks.org/java-floordiv-method-in-math/
Math floorMod() Method in Java
'JAVA > 백준 알고리즘' 카테고리의 다른 글
백준 18108 java - 1998년생인 내가 태국에서는 2541년생?! (0) | 2022.10.21 |
---|---|
백준 10926 java - ??! (0) | 2022.10.21 |
백준 1008 java - A/B (0) | 2022.10.20 |
백준 10998 java - A X B (0) | 2022.10.20 |
백준 1001 java - A-B (0) | 2022.10.20 |
Comments