Problem A: 罗马数字转换
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:48
Solved:29
Description
罗马数字包含以下七种字符: I=1,V=5,X=10,L=50,C=100,D=500 和 M=1000。
例如, 罗马数字 2 写做 II ,即为两个并列的 I 。12 写做 XII ,即为 X + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数5减小数1得到的数值4 。同样地,数字9表示为 IX。这个特殊的规则只适用于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
现给定一个有效的罗马数字 字符串 s,请将其转换成整数。
Input
输入一行字符串s,为有效的罗马数字。
Output
输出一个对应罗马数字的十进制整数。
Sample Input Copy
CXVIV
Sample Output Copy
119
HINT
提示:
- s 的长度<=15
- 题目数据保证 s 是一个有效的罗马数字,且表示整数在范围 [1, 3999] 内
- 题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。
- IL 和 IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。