29 lines
443 B
Go
29 lines
443 B
Go
package roman
|
|
|
|
import "strings"
|
|
|
|
type RomanNumeral struct {
|
|
Value int
|
|
Symbol string
|
|
}
|
|
|
|
var allRomanNumerals = []RomanNumeral{
|
|
{10, "X"},
|
|
{9, "IX"},
|
|
{5, "V"},
|
|
{4, "IV"},
|
|
{1, "I"},
|
|
}
|
|
|
|
func ConvertToRoman(arabic int) string {
|
|
var converted strings.Builder
|
|
for _, numeral := range allRomanNumerals {
|
|
for arabic >= numeral.Value {
|
|
converted.WriteString(numeral.Symbol)
|
|
arabic -= numeral.Value
|
|
}
|
|
}
|
|
|
|
return converted.String()
|
|
}
|