Roman Numeral Translation

4.5

6 votes
Problem

A Roman numeral consists of a set of letters of the alphabet, each letter has a particular value, as shown in the following table:

enter image description here

Generally, Roman numerals are written in descending order from left to right, and are added sequentially. However, certain combinations employ a subtractive principle. If a symbol of lower value appears to the left of a larger value, the smaller value is subtracted from the larger value, and the result is added to the total.

“I” may only precede “V” and “X”: IV = 4, IX = 9

“X” may only precede “L” and “C”: XC = 90, XL = 40

“C” may only precede “D” and “M”: CM = 900, CD = 400

“V”, “L”, and “D” are always followed by a symbol of smaller value so they are always added to the total.

Symbols “I”, “X”, “C”, and “M” cannot appear more than three consecutive times “XXX” = 30, but “XXXX” is not equal to 40.

Roman numerals do not include the number zero.

Your task is to write a program that converts from Arabic numerals to Roman numerals.


INPUT:
There will be 100 inputs, one line per input. 0 < input < 4000.


OUTPUT:
Output the equivalent Roman numeral of the input, one per line. Use only uppercase letters.

Sample Input
2824
1823
3284
3833
2843
1753
2407
3625
1629
1915
1176
498
1902
768
502
1487
3821
3326
10
1019
3180
304
979
490
2888
2612
2018
148
846
3099
2990
1078
1810
3551
3426
3388
1533
875
750
2805
1028
3617
617
714
796
3299
1214
1377
545
3223
2700
460
3735
1149
3393
834
1463
3
3649
1791
306
2639
2334
3053
2674
2978
3362
3641
2294
3724
3542
3197
3037
1465
2804
1208
1159
1985
1520
24
1659
24
2742
1154
2088
238
1968
1163
3660
1091
3548
1397
1902
3619
3684
1684
2360
1155
653
2763
Sample Output
2824: MMDCCCXXIV
1823: MDCCCXXIII
3284: MMMCCLXXXIV
3833: MMMDCCCXXXIII
2843: MMDCCCXLIII
1753: MDCCLIII
2407: MMCDVII
3625: MMMDCXXV
1629: MDCXXIX
1915: MCMXV
1176: MCLXXVI
498: CDXCVIII
1902: MCMII
768: DCCLXVIII
502: DII
1487: MCDLXXXVII
3821: MMMDCCCXXI
3326: MMMCCCXXVI
10: X
1019: MXIX
3180: MMMCLXXX
304: CCCIV
979: CMLXXIX
490: CDXC
2888: MMDCCCLXXXVIII
2612: MMDCXII
2018: MMXVIII
148: CXLVIII
846: DCCCXLVI
3099: MMMXCIX
2990: MMCMXC
1078: MLXXVIII
1810: MDCCCX
3551: MMMDLI
3426: MMMCDXXVI
3388: MMMCCCLXXXVIII
1533: MDXXXIII
875: DCCCLXXV
750: DCCL
2805: MMDCCCV
1028: MXXVIII
3617: MMMDCXVII
617: DCXVII
714: DCCXIV
796: DCCXCVI
3299: MMMCCXCIX
1214: MCCXIV
1377: MCCCLXXVII
545: DXLV
3223: MMMCCXXIII
2700: MMDCC
460: CDLX
3735: MMMDCCXXXV
1149: MCXLIX
3393: MMMCCCXCIII
834: DCCCXXXIV
1463: MCDLXIII
3: III
3649: MMMDCXLIX
1791: MDCCXCI
306: CCCVI
2639: MMDCXXXIX
2334: MMCCCXXXIV
3053: MMMLIII
2674: MMDCLXXIV
2978: MMCMLXXVIII
3362: MMMCCCLXII
3641: MMMDCXLI
2294: MMCCXCIV
3724: MMMDCCXXIV
3542: MMMDXLII
3197: MMMCXCVII
3037: MMMXXXVII
1465: MCDLXV
2804: MMDCCCIV
1208: MCCVIII
1159: MCLIX
1985: MCMLXXXV
1520: MDXX
24: XXIV
1659: MDCLIX
24: XXIV
2742: MMDCCXLII
1154: MCLIV
2088: MMLXXXVIII
238: CCXXXVIII
1968: MCMLXVIII
1163: MCLXIII
3660: MMMDCLX
1091: MXCI
3548: MMMDXLVIII
1397: MCCCXCVII
1902: MCMII
3619: MMMDCXIX
3684: MMMDCLXXXIV
1684: MDCLXXXIV
2360: MMCCCLX
1155: MCLV
653: DCLIII
2763: MMDCCLXIII
Time Limit: 2
Memory Limit: 256
Source Limit:
Contributers:
Editor Image

?