编程题

罗马数字问题:

罗马数字包含以下七种字符: I, V, X, L, C, D 和 M。

27 写做 XXVII, 即为 XX + V + 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。

现编写输入一个罗马数字, 输出其整数结果, 请编程实现上述功能, 或补全代码。

例如, 当输入 XXII 时, 输出 22; 当输入 MCMXC 时, 输出 1990.


rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} 

rm = list(input("请输入正确的罗马数字: "))

num, prew = 0, 1

for ch in rm[::-1]:

w =____①____

if prew > w:

num = num - w

else :

num = num + w

prew =____②____

print(____③____)

查看答案
赣ICP备20007335号-2