https://www.acmicpc.net/problem/1008
풀이
더보기
이번 문제의 핵심은 10^-9까지 출력해야한다는 점이다.
선택해야하는 자료형과 출력방식을 유의해야한다.
소수점을 표현하는 방식으로 float와 double을 많이 쓰게 되는데, float는 7자리 수, double은 16자리 수까지 표현한다.
따라서, 1/3을 할 경우 float는 0.3333334로 출력되지만, double은 0.3333333333333.. 으로 출력된다.
이번 문제를 보면,
라는 조건이 있다. 실제로 float를 10자리까지 늘려보면 0.3333334333로 출력되므로, 10^-7에서 오차가 발생한다. 즉, 문제의 취지에 옳지 않다. 따라서 double 자료형을 사용한다.
또한 문제의 조건에서 10자리까지 출력하라 했으므로 나눈 값을 String.format을 이용하여 변경현다.
import java.util.*
fun main(args: Array<String>) {
question1008()
}
fun question1008() {
val sc: Scanner = Scanner(System.`in`)
var a = sc.nextDouble()
var b = sc.nextDouble()
println(String.format("%.10f", (a/b)))
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 10926번 문제 풀이 (0) | 2023.04.04 |
---|---|
Kotlin] 백준 10869번 문제 풀이 (0) | 2023.04.03 |
Kotlin] 백준 10998번 문제 풀이 (0) | 2023.03.08 |
Kotlin] 백준 2557번 문제 풀이 (0) | 2023.03.07 |
Kotlin] 백준 1004번 문제 풀이 (0) | 2023.01.18 |