본문 바로가기
JAVA/백준 알고리즘

[백준] 1008번 A/B - Java

by 코딩전사_추추 2022. 3. 30.
728x90
반응형

1. 문제

 

1008번: A/B

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

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
반응형