Skip to content

Instantly share code, notes, and snippets.

@lubien
Created May 12, 2016 11:29
Show Gist options
  • Save lubien/a5d0acd4069645d3c93c575545ac55cb to your computer and use it in GitHub Desktop.
Save lubien/a5d0acd4069645d3c93c575545ac55cb to your computer and use it in GitHub Desktop.
function convertToRoman(inputNum) {
var letters = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
var digits = String(inputNum).split('').reverse();
var roman = [];
for (var i = 0, length = digits.length; i < length; i++) {
var value = Number(digits[i]);
var splitStart = i * 3 - i;
var workingLetters = letters.slice(splitStart, splitStart + 3);
switch(value) {
case 1:
case 2:
case 3:
roman.push(workingLetters[0].repeat(value));
break;
case 4:
roman.push(workingLetters[0] + workingLetters[1]);
break;
case 5:
roman.push(workingLetters[1]);
break;
case 6:
case 7:
case 8:
roman.push(workingLetters[1] + workingLetters[0].repeat(value - 5));
break;
case 9:
roman.push(workingLetters[0] + workingLetters[2]);
break;
}
}
return roman.reverse().join('');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment