01단계 입출력과 사칙연산
08. A/B (1008)
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.
예제 입력 1
1 3
예제 출력 1
0.33333333333333333333333333333333 10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다.
예제 입력 2
4 5
예제 출력 1
0.8
문제 분석
- A와 B를 입력 받는다. : Scanner 클래스 사용, Double형으로 받음.
- 두 수를 나눈 값을 출력한다. : '/' 연산자 사용, print 메소드 사용
제출
import java.util.Scanner; //Scanner 클래스 호출
public class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in); //Scanner 객체 생성
double A = s.nextDouble;(); //A를 실수형으로 입력받음.
double B = s.nextDouble(); //B를 실수형으로 입력받음.
s.close(); //Scanner 객체 사용 중지
System.out.print(A-B); //A/B값 출력
}
}
★ 메모
Scanner
자바에서 입력을 받을 때 사용하는 클래스로 다양한 메소드 사용이 가능하다.
- 사용 전 import를 사용하여 클래스를 호출한다.
import java.util.Scanner;
- Scanner를 사용하기 위해서 Scanner 객체를 생성한다.
- Scanner 메소드이름 = new Scanner(System.in);
- Scanner 사용 후에는 close()명령어를 사용하여 닫아준다.
메소드이름.close();
Scanner 클래스를 이용하여 다양한 메소드를 사용할 수 있다.
- next() : 공백 이전까지 문자열을 입력
- next자료형() : 자료형에 맞는 데이터를 입력
이 문제에서는 A와 B를 정수형으로 받아 nextInt()를 사용하였다. - nextLine() : 문자열 전체를 입력
- charAt() : 문자 하나를 입력
float와 double
float
- 크기 : 4bytes
- 범위 : 약 -10^38 ~ 10^38 (1.175464e-38~3.402823e+38)
- 유효 자리수 : 7
- 비트구조 : IEEE 754 단정밀도 부동소수점
double
- 크기 : 8bytes
- 범위 : 약 -10^306 ~ 10^308 (2.225074e-308~1.797693e+308)
- 유효 자리수 : 16
- 비트구조 : IEEE 754 배정밀도 부동소수점
이번 문제에 경우에는 오차가 10^(-9)이므로 float는 문제의 조건을 충족하지 않는다.
그러므로 int나 float가 아닌 double자료형을 사용하여야 한다.
출처
08. A/B (1008)
https://www.acmicpc.net/problem/1008
Ghost