728x90
반응형
1. 문제
2. 풀이
이 문제의 Key는 출력 시 실제 정답과 출력 값의 절대 오차 또는 상대오차가 10의 -9승 이하면 정답이라는 것이다.
그렇다면 오차가 10의-9승보다 작아야 되니까 소수 9번째자리 이상 출력되어야 한다는 소리!!
그러면 실수형인 float나 double을 써야하는데
이 경우에는 double을 써야 한다 그 이유는 변수의 크기 때문인데
float - 8 bit - 소수 6자리까지 표현
double - 11bit - 소수 15자리까지 표현
float는 크기가 작아서 안되기 때문에 double을 써야 한다.
1) int로 받아서 double로 형 변환
정수와 정수를 나누면 답은 정수다!!
실수인 답이 출력되어야 하기 때문에 (double)로 형 변환을 해준다.
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((double)A/B);
}
}
2. 처음부터 double로 받기
처음부터 nextDouble()을 통해서 실수로 받아놓고, 바로 나눈다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double c = sc.nextDouble();
double d = sc.nextDouble();
System.out.println(c/d);
}
}
728x90
반응형
'JAVA > 백준 알고리즘' 카테고리의 다른 글
[백준] 18108번 1998년생인 내가 태국에서는 2541년생?! - Java (0) | 2022.03.30 |
---|---|
[백준] 10926번 ??! - Java (0) | 2022.03.30 |
[백준] 10869번 사칙연산 - Java (0) | 2022.03.30 |
[백준] 10998번 문제 AxB - Java (0) | 2022.03.29 |
[백준] 알고리즘 푸는 법, 팁, 컴파일 오류 해결 법 (0) | 2022.03.29 |