[백준] A/B - 3 (16204)(kotlin)
문제 설명
두 정수 A와 B를 입력받은 다음, A/B의 몫과 나머지를 출력하는 프로그램을 작성하시오.
어떤 정수 q와 r에 대해 A = qB + r (0 ≤ r < | B | )로 나타낼 수 있을 때, q를 몫, r을 나머지라고 한다. |
입력
첫째 줄에 A와 B가 주어진다. (-10^10000 ≤ A, B ≤ 10^10000, B ≠ 0)
출력
첫째 줄에 A/B의 몫, 둘째 줄에 나머지를 출력한다.
테스트 케이스
입력 | 출력 |
---|---|
5 2 | 2 1 |
7 3 | 2 1 |
7 -3 | -2 1 |
-7 3 | -3 2 |
-7 -3 | 3 2 |
0 -2 | 0 0 |
문제 풀이1
import java.math.BigInteger
import java.util.Scanner
fun main(args: Array<String>) {
val sc = Scanner(System.`in`)
val a = sc.nextBigInteger()
val b = sc.nextBigInteger()
if (a == BigInteger.ZERO) println("0\n0")
else {
var q = a / b
when {
a < BigInteger.ZERO && b < BigInteger.ZERO -> {
q += BigInteger.ONE
println(q)
println(a - q * b)
}
a < BigInteger.ZERO -> {
q -= 1.toBigInteger()
println(q)
println(a - q * b)
}
b < BigInteger.ZERO -> {
println(q)
println(a - q * b)
}
else -> {
println(q)
println(a % b)
}
}
}
}