思路
这题最主要的难点就是规则繁杂。最快的理解规则方式是,先把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