第6关:罗马数字转换
100
- 任务要求
- 参考答案
- 重置记录
- 评论
- 关卡排行榜
任务描述
罗马数字包含以下七种字符(字母大写): I,V,X,L,C,D,M 对应关系如下: I=1, V=5 ,X=10, L=50, C=100, D=500, M=1000 比如3表示为III,也就是1+1+1=3 XII表示 10+1+1 = 12 MD表示1000+500 =1500 一般来说,大的数字出现在小的数字的左边,但也存在下列情况: IV=4, IX=9, XL=40, XC=90, CD=400, CM=900
输入一个罗马数字数串,计算对应的10进制整数数值并输出。本题用例均为合法罗马数字表示(不含其他字符)
示例 1
输入:XI 输出:11
示例 2
输入:XIV 输出:14
答案如下:
def RInt(s):
d={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,
'M':1000,'IV':3,'IX':8,'XL':30,'XC':80,'CD':300,'CM':800}
t=0
for i in range(len(s)):
if s[i-1:i+1] in d:
t+=(d[s[i-1:i+1]])
else:
t+=(d[s[i]])
return t
s=input()
print(RInt(s))