思路
这题最主要的难点就是规则繁杂。最快的理解规则方式是,先把1−10 都表示出来!
| 十进制 | 
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 | 
10 | 
| 罗马数字 | 
I | 
II | 
III | 
IV | 
V | 
VI | 
VII | 
VIII | 
IX | 
X | 
根据条件7,1,2,3 一定是 I,II,III
         
    
            
                
                    
            题面
罗马数字是古罗马使用的记数系统,现今仍很常见。
罗马数字有七个基本符号: I,V,X,L,C,D,M。
| 罗马数字 | 
I | 
V | 
X | 
L | 
C | 
D | 
M | 
| 对应的阿拉伯数字 | 
1 | 
5 | 
10 | 
50 | 
100 | 
500 | 
1000 | 
需要注意的是罗马数字与十进位数字的意义不同,它没有表示零的数字,与进位制无关。按照下述的规则可以表示任意正整
数。
“标准”形式
重复次数:一个罗马数字重复几次,就表示这个数的几倍。
右加左减:
- 1.在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。
 
- 2.在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。
 
- 3.左减的数字有限制,仅限于I,X,C.例如45表示XLV,而不是VL
 
- 4.左减时不可跨越一个位值。例如,99是XCIX([100−10]+[10−1]),而不是IC ([100−1])。等同于阿拉伯数字每位数字分别表示。
 
- 5.左减数字必须为一位,比如8是VIII,而不用IIX
 
- 6.罗马数字V,L,D中的任何一个放在较大的罗马数字右边只能使用一个。
 
- 7.右加连续相同数字不超过三位,比如14是XIV,而不是XIIII
 
现在给出一个阿拉伯数字表示的十进制正整数,输出其对应的罗马数字。
输入格式
一行十进制整数(1≤n≤1000)
输出格式
一行字符串,表示对应的罗马数字
样例
input
3
output
III