반응형
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력 값의 절대 오차 또는 상대오차가 10-9 이하이면 정답이다.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double A = sc.nextDouble();
double B = sc.nextDouble();
if(A > 0 && B < 10){
double result = A / B;
System.out.println(result);
}
}
}
문제에서 입력받는 값이 정수라고 명시되어있지만 출력값이 실수여야 하므로 실수형에 담겨야 한다.
자바에서 실수형은 float, double이 있으며 지수의 길이와 유효 자릿수는 아래와 같다.
1. float : 8bit / 소수 부분 6자리까지 오차 없이 표현
2. double : 11bit / 소수 부분 15자리까지 오차없이 표현
출력 시 조건이 소수 9번째 자리까지라고 주어졌으니 double형을 사용한다.
참고로 두 실수형은 할당되는 메모리의 크기도 차이가 있는데
float : 4byte / double : 8byte으로 2배 차이가 난다.
댓글