How to convert an integer to Roman numerals in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func intToRoman(num int) string {
    // Define values and their corresponding Roman numerals
    values := []int{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}
    symbols := []string{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}

    roman := ""

    // Loop through values and subtract while possible
    for i := 0; i < len(values); i++ {
        for num >= values[i] {
            num -= values[i]
            roman += symbols[i]
        }
    }

    return roman
}

func main() {
    fmt.Println(intToRoman(1994)) 
    fmt.Println(intToRoman(196))  
    fmt.Println(intToRoman(9))    
}



/*
run:

MCMXCIV
CXCVI
IX

*/

 



answered Dec 2, 2025 by avibootz
...