[백준] 헤일스톤 수열 (3943)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 다음 줄부터 T개의 줄에는 헤일스톤 수열의 시작값 n이 주어진다. (1 ≤ n ≤ 100,000)
» 출력
각각의 테스트 케이스에 대해서, n으로 시작하는 헤일스톤 수열에서 가장 큰 값을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 1 3 9999 100000 |
1 16 101248 100000 |
문제 풀이1
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
repeat(readLine().toInt()) {
val list = mutableListOf<Int>()
var n = readLine().toInt()
var max = 1
while (n != 1) {
if (n > max) max = n
n = if (n % 2 == 0 ) n / 2 else n * 3 + 1
}
println(max)
}
}