Sha256: da086a7d4652d18daac7854fe472a3e4906cc113bdd20afeed1379955f7e5981
Contents?: true
Size: 641 Bytes
Versions: 87
Compression:
Stored size: 641 Bytes
Contents
use "collections" primitive RomanNumerals fun apply(n: USize): String ? => if n == 0 then return "" elseif n >= 4000 then error end let numerals: Array[(USize, String)] = [ (1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"), (50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I") ] let str = recover String end var n' = n for (arabic, roman) in numerals.values() do while n' >= arabic do str.append(roman) n' = n' - arabic end end str
Version data entries
87 entries across 87 versions & 1 rubygems