Cho biết:
Mã: Chọn tất cả
Ký tự | I | V | X | L | C | D | M
Giá trị | 1 | 5 | 10 | 50 | 100 | 500 | 1000
Mã: Chọn tất cả
MOI BAN NHAP VAO SO LA MA MUON DOI: XLVII
KET QUA: 47
Mã: Chọn tất cả
Program 10_LaMa
Uses Crt;
Var N, i: Integer;
M1: Array[1..13] Of Integer;
M2: Array[1..13] Of String;
Flag: Boolean;
R: String;
Begin
ClrScr;
Flag:= True;
i:= 1;
ReadLn(N);
R:= '';
M1[1]:= 1000; M1[2]:= 900;
M1[3]:= 500; M1[4]:= 400;
M1[5]:= 100; M1[6]:= 90;
M1[7]:= 50; M1[8]:= 40;
M1[9]:= 10; M1[10]:= 9;
M1[11]:= 5; M1[12]:= 4;
M1[13]:= 1;
M2[1]:= 'M'; M2[2]:= 'CM';
M2[3]:= 'D'; M2[4]:= 'CD';
M2[5]:= 'C'; M2[6]:= 'XC';
M2[7]:= 'L'; M2[8]:= 'XL';
M2[9]:= 'X'; M2[10]:= 'IX';
M2[11]:= 'V'; M2[12]:= 'IV';
M2[13]:= 'I';
While Flag Do Begin
While N >= M1[i] Do Begin
N:= N-M1[i];
R:= R+M2[i];
If N<1 Then Flag:= False;
End;
Inc(i);
End;
WriteLn(R);
Readln;
End.
Mã: Chọn tất cả
Program LaMa_10
Uses Crt;
Var St: String;
len, i, S: Integer;
M: Array[1..100] Of Integer;
Begin
ClrScr;
Write('Nhap so la ma: ');
Readln(St);
S:= 0;
len:= Length(St);
For i:= 1 To len Do
Case St[i] Of
'I': M[i]:= 1;
'V': M[i]:= 5;
'X': M[i]:= 10;
'L': M[i]:= 50;
'C': M[i]:= 100;
'D': M[i]:= 500;
'M': M[i]:= 1000;
End;
S:= M[len];
For i:= len DownTo 2 Do
If (M[i] > M[i-1]) Then S:= S - M[i-1]
Else If (M[i] <= M[i-1]) Then S:= S + M[i-1];
Write(S);
Readln;
End.