Skip to content

Commit 5ed93a3

Browse files
authored
Create script.js
1 parent 7019270 commit 5ed93a3

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

Roman_Numeral_Converter/script.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
const arabicInput = document.getElementById("arabicInput");
2+
const romanInput = document.getElementById("romanInput");
3+
4+
arabicInput.addEventListener("input",(e)=>{
5+
romanInput.value = arabicToRoman(e.target.value);
6+
});
7+
romanInput.addEventListener("input",(e)=>{
8+
arabicInput.value = romanToArabic(e.target.value);
9+
10+
});
11+
12+
function arabicToRoman(number){
13+
let roman = "";
14+
const romanNumList = {M:1000,CM:900, D:500,CD:400, C:100, XC:90,L:50, XV: 40, X:10, IX:9, V:5, IV:4, I:1};
15+
let a;
16+
if(number > 3999)
17+
return "Enter a number between 1 and 3999";
18+
else{
19+
for(let key in romanNumList){
20+
a = Math.floor(number / romanNumList[key]);
21+
if(a >= 0){
22+
for(let i = 0; i < a; i++){
23+
roman += key;
24+
}
25+
}
26+
number = number % romanNumList[key];
27+
}
28+
}
29+
30+
return roman;
31+
}
32+
function romanToArabic(romanNumber){
33+
romanNumber = romanNumber.toUpperCase();
34+
const romanNumList = ["CM","M","CD","D","XC","C","XL","L","IX","X","IV","V","I"];
35+
const corresp = [900,1000,400,500,90,100,40,50,9,10,4,5,1];
36+
let index = 0, num = 0;
37+
for(let rn in romanNumList){
38+
index = romanNumber.indexOf(romanNumList[rn]);
39+
while(index != -1){
40+
num += parseInt(corresp[rn]);
41+
romanNumber = romanNumber.replace(romanNumList[rn],"-");
42+
index = romanNumber.indexOf(romanNumList[rn]);
43+
}
44+
}
45+
return num;
46+
}

0 commit comments

Comments
 (0)