Created
July 19, 2017 20:28
-
-
Save anonymous/09e925960790788b050b1a5fdae1f2bc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function convertToRoman(num) { | |
var first = ""; | |
var second = ""; | |
var third = ""; | |
var count = ""; | |
var placeHolder = ""; | |
var addFirst = ""; | |
var addSecond = ""; | |
var answer = ""; | |
var test = ""; | |
var waitingArray = []; | |
var roman = { | |
1: "I", | |
4: "IV", | |
5: "V", | |
9: "IX", | |
10: "X", | |
40: "XL", | |
50: "L", | |
90: "XC", | |
100: "C", | |
400: "CD", | |
500: "D", | |
900: "CM", | |
1000: "M" | |
}; | |
if (num > 0 && num < 10) { | |
test = (num.toString().split("")); | |
first = test[0]; | |
} | |
if (first >= 1 && first < 4) { | |
//between 1 and 3 | |
count = first; | |
placeHolder = roman[1].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (first >= 4 && first < 5) { | |
// between 4 and 5 | |
placeHolder = roman[4]; | |
waitingArray.push(placeHolder); | |
} else if (first >= 5 && first < 6) { | |
// number is at 5 | |
placeHolder = roman[5]; | |
waitingArray.push(placeHolder); | |
} else if (first >= 6 && first < 9) { | |
// between 6 and 8 | |
count = first - 5; | |
addFirst = roman[5]; | |
addSecond = roman[1].repeat(count); | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (first >= 9 && first < 10) { | |
// number is at 9 | |
placeHolder = roman[9]; | |
waitingArray.push(placeHolder); | |
} | |
if (num >= 10 && num < 100) { | |
test = (num.toString().split("")); | |
first = test[0] + "0"; | |
second = test[1]; | |
} | |
// FIRST DIGIT | |
if (first >= 10 && first < 40) { | |
count = first / 10; | |
placeHolder = roman[10].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (first >= 40 && first < 50) { | |
placeHolder = roman[40]; | |
waitingArray.push(placeHolder); | |
} else if (first >= 50 && first < 60) { | |
placeHolder = roman[50]; | |
waitingArray.push(placeHolder); | |
} else if (first >= 60 && first < 90) { | |
count = (first - 50) / 10; | |
addFirst = roman[50]; | |
addSecond = roman[10].repeat(count); | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (first >= 90 && first < 100) { | |
placeHolder = roman[90]; | |
waitingArray.push(placeHolder); | |
} | |
// SECOND DIGIT | |
if (second >= 1 && second < 4) { | |
//between 1 and 3 | |
count = second; | |
placeHolder = roman[1].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (second >= 4 && second < 5) { | |
// between 4 and 5 | |
placeHolder = roman[4]; | |
waitingArray.push(placeHolder); | |
} else if (second >= 5 && second < 6) { | |
// number is at 5 | |
placeHolder = roman[5]; | |
waitingArray.push(placeHolder); | |
} else if (second >= 6 && second < 9) { | |
// between 6 and 8 | |
count = second - 5; | |
addFirst = roman[5]; | |
addSecond = roman[1].repeat(count); | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (second >= 9 && second < 10) { | |
// number is at 9 | |
placeHolder = roman[9]; | |
waitingArray.push(placeHolder); | |
} | |
if (num > 99 && num < 1000) { | |
test = (num.toString().split("")); | |
first = test[0] + "0" + "0"; | |
second = test[1] + "0"; | |
third = test[2]; | |
} | |
// FIRST DIGIT | |
if (first >= 100 && first < 400) { | |
// between 100 and 399 | |
count = first / 100; | |
placeHolder = roman[100].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (first >= 400 && first < 500) { | |
// between 400 and 499 | |
placeHolder = roman[400]; | |
waitingArray.push(placeHolder); | |
} else if (first >= 500 && first <= 599) { | |
// between 500 and 599 | |
placeHolder = roman[500]; | |
waitingArray.push(placeHolder); | |
} else if (first < 900 && first > 500) { | |
// between 600 and 899 | |
count = (first - 500) / 100; | |
addFirst = [roman[500]]; | |
addSecond = [roman[100].repeat(count)]; | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (first >= 900 && first <= 1000) { | |
// between 900 to 999 | |
placeHolder = roman[900]; | |
waitingArray.push(placeHolder); | |
} | |
// SECOND DIGIT | |
if (second >= 10 && second < 40) { | |
// between 10 & 39 | |
count = second / 10; | |
placeHolder = roman[10].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (second >= 40 && second < 50) { | |
// between 40 and 49 | |
placeHolder = roman[40]; | |
waitingArray.push(placeHolder); | |
} else if (second >= 50 && second < 60) { | |
// between 50 and 59 | |
placeHolder = roman[50]; | |
waitingArray.push(placeHolder); | |
} else if (second >= 60 && second < 90) { | |
//between 60 and 89 | |
count = (second - 50) / 10; | |
addFirst = roman[50]; | |
addSecond = roman[10].repeat(count); | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (second >= 90 && second < 100) { | |
placeHolder = roman[90]; | |
waitingArray.push(placeHolder); | |
} | |
//THIRD DIGIT | |
if (third >= 1 && third < 4) { | |
//between 1 and 3 | |
count = third; | |
placeHolder = roman[1].repeat(count); | |
waitingArray.push(placeHolder); | |
} else if (third >= 4 && third < 5) { | |
// between 4 and 5 | |
placeHolder = roman[4]; | |
waitingArray.push(placeHolder); | |
} else if (third >= 5 && third < 6) { | |
// number is at 5 | |
placeHolder = roman[5]; | |
waitingArray.push(placeHolder); | |
} else if (third >= 6 && third < 9) { | |
// between 6 and 8 | |
count = third - 5; | |
addFirst = roman[5]; | |
addSecond = roman[1].repeat(count); | |
placeHolder = addFirst + addSecond; | |
waitingArray.push(placeHolder); | |
} else if (third >= 9 && third < 10) { | |
// number is at 9 | |
placeHolder = roman[9]; | |
waitingArray.push(placeHolder); | |
} | |
num = waitingArray.join(""); | |
console.log(num); | |
} | |
convertToRoman(852); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment