How to convert an integer to Roman numerals in Rust

1 Answer

0 votes
struct IntegerToRoman;

impl IntegerToRoman {
    fn int_to_roman(mut num: i32) -> String {
        // Define values and their corresponding Roman numerals
        let values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
        let symbols = [
            "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I",
        ];

        let mut roman = String::new();

        for (value, symbol) in values.iter().zip(symbols.iter()) {
            while num >= *value {
                num -= *value;
                roman.push_str(symbol);
            }
        }

        roman
    }
}

fn main() {
    println!("{}", IntegerToRoman::int_to_roman(1994)); 
    println!("{}", IntegerToRoman::int_to_roman(196)); 
    println!("{}", IntegerToRoman::int_to_roman(9));   
}



/*
run:

MCMXCIV
CXCVI
IX

*/

 



answered Dec 2, 2025 by avibootz
...