Như các bạn đã biết số La Mã hay chữ số La Mã là hệ thống chữ số cổ đại, dựa theo chữ số Etruria. Hệ thống này dựa trên một số ký tự Latinh nhất định được coi là chữ số sau khi được gán giá trị. Hệ thống chữ số La Mã dùng trong thời cổ đại và đã được người ta chỉnh sửa vào thời Trung Cổ để biến nó thành dạng mà chúng ta sử dụng ngày nay.
Kí tự các chữ số La Mã tương ứng với giá trị:
Ký tự | Giá trị |
I | 1 |
V | 5 |
X | 10 |
L | 50 |
C | 100 |
D | 500 |
M | 1000 |
Vì nhiều ký hiệu có thể được kết hợp lại với nhau để chỉ các số với các giá trị khác chúng. Thông thường người ta quy định các chữ số I, X, C, M, không được lặp lại quá 3 lần liên tiếp; các chữ số V, L, D không được lặp lại quá 1 lần. Chính vì thế mà có 6 số đặc biệt được nêu ra trong bảng sau:
Ký tự | Giá trị |
IV | 4 |
IX | 9 |
XL | 40 |
XC | 90 |
CD | 400 |
CM | 900 |
Bằng ngôn ngữ lập trình, em hãy viết một chương trình với số nguyên N (1\(\le N\le\)1000) được nhập từ. Hãy chuyển đổi sang chữ số La Mã nếu số N đó là số tròn chục.
uses crt;
var n,dv,tr,ch,ng:integer;
begin
clrscr;
readln(n);
if n mod 10=0 then
begin
dv:=n mod 10;
ch:=n div 10;
ch:=ch mod 10;
tr:=n div 100;
tr:=tr mod 10;
ng:=n div 1000;
ng:=ng mod 10;
if ng=1 then write('M');
case tr of
1: write('C');
2: write('CC');
3: write('CCC');
4: write('CD');
5: write('D');
6: write('DC');
7: write('DCC');
8: write('DCCC');
9: write('CM');
end;
case ch of
1: write('X');
2: write('XX');
3: write('XXX');
4: write('XL');
5: write('L');
6: write('LX');
7: write('LXX');
8: write('LXXX');
9: write('XC');
end;
end;
readln;
end.