DEV Community

Seth
Seth

Posted on

Integer to Roman

We'er going to kick things off by creating 2 variables. One will store our numbers, and the other will store the corresponding roman numeral, and both will go from highest to lowest.

This will allow us to associate a number with its counterpart. Note: Remember to put each number and roman numeral as a string within the overall array.

    let numbers = ['1000', '900', '500', '400', '100', '90', '50', '40', '10', '9', '5', '4', '1']
    let romans = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
    let result = ''

Enter fullscreen mode Exit fullscreen mode

Now that we have this dict ready, we can loop through the number and find out if the number given is greater than the current number.

If it is, we will add the corresponding roman numeral to a result variable, then we will subtract the given number by the current number.

We will continue to do this loop until we are 0 and then we return the result string.

    let numbers = ['1000', '900', '500', '400', '100', '90', '50', '40', '10', '9', '5', '4', '1']
    let romans = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
    let result = ''

     //loop through numbers
     for (let i = 0; i < numbers.length; i++){

         //set variable to current number
         let current = numbers[i]

         //while the number equal the current number or is 
          bigger then it 
         while (num >= current) {


            //add the corresponding numeral to the result 
             string
             result += romans[i]

              //subtract the num by the current current in the 
              numbers array
             num-=current
         }
     }

       //return the result
    return result
};

Enter fullscreen mode Exit fullscreen mode

Top comments (0)