https://www.acmicpc.net/problem/1008
Question
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
Input
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
example input 1
1 3
example input 2
4 5
Output
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.
example output 1
0.33333333333333333333333333333333
10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다.
example output 2
0.8
Answer
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
StringTokenizer st = new StringTokenizer(s, " ");
double num1 = Double.parseDouble(st.nextToken());
int num2 = Integer.parseInt(st.nextToken());
System.out.println(num1 / num2);
}
}
Problem Solution
(정수 / 정수)의 결과가 정수가 나오지만
(정수 / 실수), (실수 / 정수), (실수 / 실수)의 결과는 실수가 나온다.
(실수 / 정수)로 결과를 냈다.
Code Explanation
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
사용자로부터 입력을 받아온다.
String s = br.readLine();
문자열 한 행을 모두 읽어온다.
StringTokenizer st = new StringTokenizer(s, " ");
문자열 한 행을 모두 읽어왔기 때문에 공백을 기준으로 문자를 분리한다.
double num1 = Double.parseDouble(st.nextToken());
int num2 = Integer.parseInt(st.nextToken());
공백을 기준으로 나눈 문자열을 반환해준다.
문자열이 반환되는 즉시 객체에서 사라진다.