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

Thuật toán JavaScript chuyển số nguyên sang số La Mã

Viết hàm intToRoman() trả về số La Mã tương đương của số nguyên truyền vào.

Ví dụ

const intToRoman = (num) => {
  let result = "";
  while (num) {
    if (num >= 1000) {
      result += "M";
      num -= 1000;
    } else if (num >= 500) {
      if (num >= 900) {
        result += "CM";
        num -= 900;
      } else {
        result += "D";
        num -= 500;
      }
    } else if (num >= 100) {
      if (num >= 400) {
        result += "CD";
        num -= 400;
      } else {
        result += "C";
        num -= 100;
      }
    } else if (num >= 50) {
      if (num >= 90) {
        result += "XC";
        num -= 90;
      } else {
        result += "L";
        num -= 50;
      }
    } else if (num >= 10) {
      if (num >= 40) {
        result += "XL";
        num -= 40;
      } else {
        result += "X";
        num -= 10;
      }
    } else if (num >= 5) {
      if (num >= 9) {
        result += "IX";
        num -= 9;
      } else {
        result += "V";
        num -= 5;
      }
    } else {
      if (num >= 4) {
        result += "IV";
        num -= 4;
      } else {
        result += "I";
        num -= 1;
      }
    }
  }
  return result;
};

console.log(intToRoman(178));
console.log(intToRoman(89));
console.log(intToRoman(55));
console.log(intToRoman(1555));

Kết quả

Đầu ra trong console sẽ là:

CLXXVIII LXXXIX LV MDLV