JSFiddle - React, Tailwind, and code Playground
by Steven Senkus
JavaScript
var intToRoman = function(num) {
let romanNumeral = "";
while (Math.floor(num / 1000) !== 0) {
romanNumeral += 'M';
num -= 1000;
}
if (Math.floor(num / 900) !== 0) {
romanNumeral += 'CM';
num -= 900;
}
if (Math.floor(num / 500) !== 0) {
romanNumeral += 'D';
num -= 500;
}
if (Math.floor(num / 400) !== 0) {
romanNumeral += 'CD';
num -= 400;
} else {
while (Math.floor(num / 100) !== 0) {
romanNumeral += 'C';
num -= 100;
}
}
if (Math.floor(num / 90) !== 0) {
romanNumeral += 'XC';
num -= 90;
}
if (Math.floor(num / 50) !== 0) {
romanNumeral += 'L';
num -= 50;
}
if (Math.floor(num / 40) !== 0) {
romanNumeral += 'XL';
num -= 40;
} else {
while (Math.floor(num / 10) !== 0) {
romanNumeral += 'X';
num -= 10;
}
}
if (Math.floor(num / 9) !== 0) {
romanNumeral += 'IX';
num -= 9;
}
if (Math.floor(num / 5) !== 0) {
romanNumeral += 'V';
num -= 5;
}
if (Math.floor(num / 4) !== 0) {
romanNumeral += 'IV';
num -= 4;
} else {
while (Math.floor(num / 1) !== 0) {
romanNumeral += 'I';
num -= 1;
}
}
if (num > 0) {
throw new Error(`Conversion failed! ${num} is still remains!`)
}
return romanNumeral;
};
for (let num = 1; num < 100; num++) {
console.log(num, intToRoman(num));
}