Skip to content

Commit c6071a1

Browse files
authored
Create roman-numerals-converter.js
1 parent c023a88 commit c6071a1

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
const ROMANNUMERALS = {
2+
"1": "I",
3+
"5": "V",
4+
"10": "X",
5+
"50": "L",
6+
"100": "C",
7+
"500": "D",
8+
"1000": "M"
9+
}
10+
11+
var converters = [
12+
function(num) {
13+
if (num =="9") {
14+
return ROMANNUMERALS[1]
15+
} else if (num >= 5) {
16+
let str = ROMANNUMERALS[5]
17+
18+
for (let i = 5; i < num; i++) {
19+
str += ROMANNUMERALS[1]
20+
}
21+
return str
22+
} else if (num == "4") {
23+
return "IV"
24+
} else {
25+
let str = ""
26+
27+
for (let i = 0; i < num; i++) {
28+
str += ROMANNUMERALS[1]
29+
}
30+
return str
31+
}
32+
},
33+
function(num) {
34+
if (num =="9") {
35+
return ROMANNUMERALS[10]
36+
} else if (num >= 5) {
37+
let str = ROMANNUMERALS[50]
38+
39+
for (let i = 5; i < num; i++) {
40+
str += ROMANNUMERALS[10]
41+
}
42+
return str
43+
} else if (num == "4") {
44+
return "XL"
45+
} else {
46+
let str = ""
47+
48+
for (let i = 0; i < num; i++) {
49+
str += ROMANNUMERALS[10]
50+
}
51+
return str
52+
}
53+
},
54+
function(num) {
55+
if (num =="9") {
56+
return ROMANNUMERALS[100]
57+
} else if (num >= 5) {
58+
let str = ROMANNUMERALS[500]
59+
60+
for (let i = 5; i < num; i++) {
61+
str += ROMANNUMERALS[100]
62+
}
63+
return str
64+
} else if (num == "4") {
65+
return "CD"
66+
} else {
67+
let str = ""
68+
69+
for (let i = 0; i < num; i++) {
70+
str += ROMANNUMERALS[100]
71+
}
72+
return str
73+
}
74+
},
75+
function(num) {
76+
let str = ""
77+
78+
for (let i = 0; i < num; i++) {
79+
str += ROMANNUMERALS[1000]
80+
}
81+
return str
82+
}
83+
]
84+
85+
function convertToRoman(num) {
86+
var str = num.toString().split("")
87+
88+
num = []
89+
for (let i = 0; i < str.length; i++) {
90+
if (str[i] == "9") {
91+
let cluster = []
92+
cluster.push(converters[str.length - i](1))
93+
cluster.unshift(converters[str.length - i - 1](9))
94+
num = num.concat(cluster)
95+
} else {
96+
num.push(converters[str.length - i - 1](str[i]))
97+
}
98+
}
99+
100+
return num.join("")
101+
}

0 commit comments

Comments
 (0)