How to convert an integer to Roman numerals in Kotlin

1 Answer

0 votes
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

*/

 



answered Dec 2, 2025 by avibootz
...