Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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

Viết hàm nhận chuỗi số La Mã và trả về giá trị thập phân (cơ số 10) tương đương.

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'));

Kết quả

Đầu ra trong console sẽ là:

178 89 55 1555