Kotlin π¬ λ°±μ€ 12λ¨κ³ :: 2231 λ²
λΆν΄ν©
λ¬Έμ |
μ΄λ€ μμ°μ Nμ΄ μμ λ, κ·Έ μμ°μ Nμ λΆν΄ν©μ Nκ³Ό Nμ μ΄λ£¨λ κ° μ리μμ ν©μ μλ―Ένλ€. μ΄λ€ μμ°μ Mμ λΆν΄ν©μ΄ NμΈ κ²½μ°, Mμ Nμ μμ±μλΌ νλ€. μλ₯Ό λ€μ΄, 245μ λΆν΄ν©μ 256(=245+2+4+5)μ΄ λλ€. λ°λΌμ 245λ 256μ μμ±μκ° λλ€. λ¬Όλ‘ , μ΄λ€ μμ°μμ κ²½μ°μλ μμ±μκ° μμ μλ μλ€. λ°λλ‘, μμ±μκ° μ¬λ¬ κ°μΈ μμ°μλ μμ μ μλ€.
μμ°μ Nμ΄ μ£Όμ΄μ‘μ λ, Nμ κ°μ₯ μμ μμ±μλ₯Ό ꡬν΄λ΄λ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯ |
첫째 μ€μ μμ°μ N(1 ≤ N ≤ 1,000,000)μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯ |
첫째 μ€μ λ΅μ μΆλ ₯νλ€. μμ±μκ° μλ κ²½μ°μλ 0μ μΆλ ₯νλ€.
νμ΄ |
λΆν΄ν©μ μΆλ ₯λ μ«μ(μμ±μ) + ν΄λΉ μμ κ° μλ¦Ώμμ ν©μ΄λ€. μ΄λ, κ°μ₯ μμ μμ±μμ κ²½μ°λ κ° μλ¦Ώμμ ν©μ΄ μ΅λκ° λλ κ²½μ°μ΄λ€. κ° μλ¦Ώμμ ν©μ΄ μ΅λκ° λλ κ²½μ°λ λͺ¨λ μλ¦Ώμμ κ°μ΄ 9μΌλ μ΄λ―λ‘ forλ¬Έμ μ΄μ©ν΄ 9 * μ λ ₯λ°μ μμ μλ¦ΏμλΆν° μ λ ₯λ°μ μκΉμ§ λΆν΄ν©μ κ³μ°ν΄ λΉκ΅νλ€.
λ΅μ |
fun main() {
val N = readLine()!!.toInt()
val nLength = N.toString().length
for (i in N - 9 * nLength until N) {
if (splitSum(i.toString()) + i == N) {
print(i)
return
}
}
print(0)
}
fun splitSum(num: String): Int {
var sum = 0
for (i in num) {
sum += Character.getNumericValue(i)
}
return sum
}