Sha256: 1a873aa9db4353418fa80be10e7ee1308411f10fbc8dcdc5b536688e891c8097
Contents?: true
Size: 705 Bytes
Versions: 156
Compression:
Stored size: 705 Bytes
Contents
package romannumerals import ( "bytes" "fmt" ) const testVersion = 3 type arabicToRoman struct { arabic int roman string } func ToRomanNumeral(input int) (string, error) { buffer := bytes.NewBufferString("") if input <= 0 || input >= 4000 { return "", fmt.Errorf("The number %d is undefined in the roman numeral system.", input) } mappings := []arabicToRoman{ {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"}, } for _, m := range mappings { for input >= m.arabic { buffer.WriteString(m.roman) input -= m.arabic } } return buffer.String(), nil }
Version data entries
156 entries across 156 versions & 1 rubygems