[백준 자바] 01-08 A/B

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

문제 분석


  1. A와 B를 입력 받는다. : Scanner 클래스 사용, Double형으로 받음.
  2. 두 수를 나눈 값을 출력한다. : '/' 연산자 사용, 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

  1. 크기 : 4bytes
  2. 범위 : 약 -10^38 ~ 10^38 (1.175464e-38~3.402823e+38)
  3. 유효 자리수 : 7
  4. 비트구조 : IEEE 754 단정밀도 부동소수점

double

  1. 크기 : 8bytes
  2. 범위 : 약 -10^306 ~ 10^308 (2.225074e-308~1.797693e+308)
  3. 유효 자리수 : 16
  4. 비트구조 : IEEE 754 배정밀도 부동소수점

이번 문제에 경우에는 오차가 10^(-9)이므로 float는 문제의 조건을 충족하지 않는다.
그러므로 int나 float가 아닌 double자료형을 사용하여야 한다.

출처


08. A/B (1008)
https://www.acmicpc.net/problem/1008

이 글이 도움이 되었나요?
0 minutes ago
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.