
RomanNumerals
Nga là một học sinh lớp 6, cô đang bận rộn ôn thi cuối học kì I. Tuy nhiên, Nga gặp một chút khó khăn khi cô không nhớ gì về bài học số La Mã vì hôm đó không nghe cô giảng bài. Cô ấy đang rất cần sự giúp đỡ, hãy giúp cô ấy chuyển chuyển đổi một số n
nguyên dương sang số La Mã nhé.
Ta quy định các chữ số có giá trị từ 1
đến 1000
là các kí tự in thường, và các chữ số có giá trị lớn hơn 1000
là các kí tự in hoa. Các chữ số i, x, c, m, X, C, M
không được lặp lại quá ba lần liên tiếp, các chữ số v, l, d, V, L, D
không được lặp lại liên tiếp. Chính vì thế mà có các nhóm kí tự đặc biệt.
Ta dùng các chữ số và các nhóm chữ số như trên để viết số La Mã. Tính từ trái sang phải giá trị của các chữ số và nhóm chữ số giảm dần.
Ví dụ:
- Với
n=1024
thìromanNumerals(n)="mxxiv"
.
Giải thích: vìm=1000
,xx=20
,iv=4
, vậy khi viết liền các nhóm kí tự lại, ta được biểu diễn của1024
. - Với
n=32468
thìromanNumerals(n)="XXXmmcdlxviii"
.
Giải thích: vìXXX=30000
,mm=2000
,cd=400
,l=50
,x=10
,viii=8
, vậy khi viết liền các nhóm kí tự lại, ta được biểu diễn của32468
.
Đầu vào/đầu ra:
- [Thời gian chạy]: 0.5s với C++, 3s với Java/C#, 4s với Python/Go/Java Script
- [Đầu vào] Integer
0 < n < 4 000 000
- [Đầu ra]: String
Xâu chưa kết quả, chỉ chứa các kí tự{'i', 'v', 'x', 'l', 'c', 'd', 'm', 'V', 'X', 'L', 'C', 'D', 'M'}
.
Post Comment