[백준] 루트 (4619)(kotlin)
문제 설명
입력 및 출력
» 입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, B와 N이 주어진다. (1 ≤ B ≤ 1,000,000, 1 ≤ N ≤ 9) 입력의 마지막 줄에는 0이 2개 주어진다.
» 출력
각 테스트 케이스에 해당하는 A를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 3 5 3 27 3 750 5 1000 5 2000 5 3000 5 1000000 5 0 0 |
1 2 3 4 4 4 5 16 |
문제 풀이1
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.pow
fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
while (true) {
val (b, n) = readLine().split(" ").map { it.toDouble() }
if (b == 0.0 && n == 0.0) break
var a = 1.0
while (true) {
if (b in a.pow(n)..(a + 1).pow(n)) {
when {
b - a.pow(n) > (a + 1).pow(n) - b -> println((a + 1).toInt())
else -> println(a.toInt())
}
break
} else {
a++
}
}
}
}