Menu
CoddyTech

Integer to Roman

Số La Mã có bảy chữ cái: M là 1000, D là 500, C là 100, L là 50, X là 10, V là 5 và I là 1. Các chữ cái được viết từ giá trị lớn nhất đến nhỏ nhất rồi cộng lại, vì vậy 7 là VII. Không chữ cái nào lặp lại liên tiếp bốn lần: 4, 9, 40, 90, 400 và 900 được viết lần lượt là IV, IX, XL, XC, CD và CM, trong đó chữ cái nhỏ hơn đứng trước chữ cái lớn hơn để biểu thị phép trừ. Chỉ sáu cặp này mới đặt chữ cái nhỏ hơn ở trước.

Cho một số nguyên num, hãy trả về số La Mã tương ứng.

Hàm

intToRoman(num: integer) → string
numinteger
một số nguyên từ 1 đến 3999
Trả vềstring
số La Mã của num viết bằng chữ in hoa

Ràng buộc

  • 1 ≤ num ≤ 3999

Ví dụ

Đầu vào
num = 49
Đầu ra
"XLIX"
Giải thích
49 bằng 40 + 9, nên số La Mã là XL rồi đến IX: XLIX. IL không hợp lệ, vì I chỉ được dùng để trừ trong IV và IX.
challenge icon

Câu hỏi mở rộng

Với một chuỗi (string), bạn có thể kiểm tra xem đó có phải là chữ số La Mã theo dạng chuẩn này không, chấp nhận XLIX và từ chối IIII, IL và VX?

Đặt lại code
def intToRoman(num):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

num = 49

Đầu ra mong đợi

"XLIX"