You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.1 KiB
57 lines
1.1 KiB
2 years ago
|
package inttoroman
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func intToRoman(num int) string {
|
||
|
var result strings.Builder
|
||
|
for num > 0 {
|
||
|
if num >= 1000 {
|
||
|
num = num - 1000
|
||
|
result.WriteString("M")
|
||
|
} else if num >= 900 {
|
||
|
num = num - 900
|
||
|
result.WriteString("CM")
|
||
|
} else if num >= 500 {
|
||
|
num = num - 500
|
||
|
result.WriteString("D")
|
||
|
} else if num >= 400 {
|
||
|
num = num - 400
|
||
|
result.WriteString("CD")
|
||
|
} else if num >= 100 {
|
||
|
num = num - 100
|
||
|
result.WriteString("C")
|
||
|
} else if num >= 90 {
|
||
|
num = num - 90
|
||
|
result.WriteString("XC")
|
||
|
} else if num >= 50 {
|
||
|
num = num - 50
|
||
|
result.WriteString("L")
|
||
|
} else if num >= 40 {
|
||
|
num = num - 40
|
||
|
result.WriteString("XL")
|
||
|
} else if num >= 10 {
|
||
|
num = num - 10
|
||
|
result.WriteString("X")
|
||
|
} else if num >= 9 {
|
||
|
num = num - 9
|
||
|
result.WriteString("IX")
|
||
|
} else if num >= 5 {
|
||
|
num = num - 5
|
||
|
result.WriteString("V")
|
||
|
} else if num >= 4 {
|
||
|
num = num - 4
|
||
|
result.WriteString("IV")
|
||
|
} else if num >= 1 {
|
||
|
num = num - 1
|
||
|
result.WriteRune('I')
|
||
|
}
|
||
|
}
|
||
|
return result.String()
|
||
|
}
|
||
|
|
||
|
func Convert(num int) string {
|
||
|
return intToRoman(num)
|
||
|
}
|