罗马数字问题

ip068064 程序题 共 个子题

题目说明

罗马数字包含以下七种字符: 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(  ③  )

评分标准

(1)rmdict[ch];(4分)

(2)w;(3分)

(3)num。(3分)

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧