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

Cách chuyển số thập phân sang số La Mã trong JavaScript

Thuật toán: trừ dần giá trị lớn nhất có thể từ số La Mã mapping table.

Ví dụ

<!DOCTYPE html>
<html>
<body>
    <script>
        const romanNum = ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"];
        const decNum   = [1000,900,500,400,100,90,50,40,10,9,5,4,1];
        function decimalToRoman(value) {
            if (value <= 0 || value >= 4000) return "Out of range (1-3999)";
            let roman = "";
            for (let i = 0; i < romanNum.length; i++) {
                while (value >= decNum[i]) {
                    value -= decNum[i];
                    roman += romanNum[i];
                }
            }
            return roman;
        }
        console.log(decimalToRoman(39));   // XXXIX
        console.log(decimalToRoman(145));  // CXLV
        console.log(decimalToRoman(520));  // DXX
        console.log(decimalToRoman(1994)); // MCMXCIV
    </script>
</body>
</html>

Kết quả

XXXIX
CXLV
DXX
MCMXCIV

Hỗ trợ 1-3999 (giới hạn ký hiệu La Mã chuẩn).