object IntegerToRoman {
fun intToRoman(num: Int): String {
val values = listOf(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
val symbols = listOf("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I")
var n = num
val sb = StringBuilder()
for ((value, symbol) in values.zip(symbols)) {
while (n >= value) {
n -= value
sb.append(symbol)
}
}
return sb.toString()
}
}
fun main() {
println(IntegerToRoman.intToRoman(1994))
println(IntegerToRoman.intToRoman(196))
println(IntegerToRoman.intToRoman(9))
}
/*
run:
MCMXCIV
CXCVI
IX
*/