Sha256: 5c9e92ad1e0b939deb641b74aa6a9b33cd61af580a727be679a8d138e8687e4a
Contents?: true
Size: 629 Bytes
Versions: 242
Compression:
Stored size: 629 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
242 entries across 242 versions & 1 rubygems