C. 罗马的数字系统

    传统题 1000ms 256MiB

罗马的数字系统

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

小杨同学正在研究古罗马的数字系统,他需要编写一个程序将罗马数字转换为对应的整数。罗马数字由 I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000) 这七个字符组成,每个字符对应固定的数值。通常数值从左到右按从大到小排列,但存在六种运算规则:IV(4)IX(9)XL(40)XC(90)CD(400)CM(900)。现给定一个符合规则的罗马数字字符串,请你帮小杨同学将其转换为整数。

输入格式

第一行一个字符串 ss (1s151 \le |s| \le 15),表示待转换的罗马数字。字符串仅包含字符 'I', 'V', 'X', 'L', 'C', 'D', 'M',且保证是有效罗马数字,对应整数范围为 [1,3999][1, 3999],不存在跨位等非法写法(如 ILIM 等)。

输出格式

一个整数,表示罗马数字 ss 对应的十进制数值。

输入输出样例

III
3
IV
4
IX
9
LVIII
58

解释:L=50L=50V=5V=5III=3III=3,总和 50+5+3=5850+5+3=58

MCMXCIV
1994

解释:M=1000M=1000CM=900CM=900XC=90XC=90IV=4IV=4,总和 1000+900+90+4=19941000+900+90+4=1994

2026年05月17日CCF GESP C++三级模拟考试

未参加
状态
已结束
规则
IOI
题目
3
开始于
2026-5-17 16:30
结束于
2026-5-17 18:30
持续时间
2 小时
主持人
参赛人数
6