Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
|
|
@ -0,0 +1,26 @@
|
|||
def toRoman(num: Int): String = {
|
||||
case class RomanUnit(value: Int, token: String)
|
||||
val romanNumerals = List(
|
||||
RomanUnit(1000, "M"),
|
||||
RomanUnit(900, "CM"),
|
||||
RomanUnit(500, "D"),
|
||||
RomanUnit(400, "CD"),
|
||||
RomanUnit(100, "C"),
|
||||
RomanUnit(90, "XC"),
|
||||
RomanUnit(50, "L"),
|
||||
RomanUnit(40, "XL"),
|
||||
RomanUnit(10, "X"),
|
||||
RomanUnit(9, "IX"),
|
||||
RomanUnit(5, "V"),
|
||||
RomanUnit(4, "IV"),
|
||||
RomanUnit(1, "I"))
|
||||
|
||||
var remainingNumber = num
|
||||
romanNumerals.foldLeft("") { (outputStr, romanUnit) =>
|
||||
{
|
||||
val times = remainingNumber / romanUnit.value
|
||||
remainingNumber -= romanUnit.value * times
|
||||
outputStr + (romanUnit.token * times)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue