Computer >> Máy Tính >  >> Lập trình >> Javascript

Thuật toán JavaScript để chuyển đổi số La Mã sang số thập phân

Chúng tôi được yêu cầu viết một hàm nhận vào một chuỗi số la mã và trả về giá trị tương đương với số thập phân (cơ số 10) của nó. Do đó, hãy viết mã cho chức năng này -

Ví dụ

const romanToInt = (s) => {
   const legend = "IVXLCDM";
   const l=[1,5,10,50,100,500,1000];
   let sum=0;
   while(s){
      if(!!s[1] && legend.indexOf(s[0]) < legend.indexOf(s[1])){
         sum += (l[legend.indexOf(s[1])] - l[legend.indexOf(s[0])]);
         s = s.substring(2, s.length);
      } else {
         sum += l[legend.indexOf(s[0])];
         s = s.substring(1, s.length);
      }
   }
   return sum;
};
console.log(romanToInt('CLXXVIII'));
console.log(romanToInt('LXXXIX'));
console.log(romanToInt('LV'));
console.log(romanToInt('MDLV'));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

178
89
55
1555