Integer to Roman

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

val M = Array("", "M", "MM", "MMM")
val C = Array("", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM")
val X = Array("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC")
val I = Array("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")

/**
  *
  * @param num
  * @return
  */
def intToRoman(num: Int):String = {
  if (num < 0 || num > 3999) throw new Error("out of range")
  else {
    M(num/1000) + C((num%1000)/100) + X((num%100)/10) + I(num%10)
  }
}

intToRoman(3745)

Last updated