题目描述:
- 罗马数字包含以下七种字符(字母大写):
I,V,X,L,C,D,M
- 对应关系如下:
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
- 题目要求
输入一个罗马数字数串,计算对应的10进制整数数值并输出。本题用例均为合法罗马数字表示
代码(Python实现):
def change(s):
#扫描计算,每个罗马字母都算,对于组合,在dic字典默认减去多算的
#如IV:3 = V(4) - I(3)
dic={'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}
sum=0
for i in range(len(s)):
if s[i-1:i+1] in dic:
sum+=(dic[s[i-1:i+1]])
else:
sum+=(dic[s[i]])
return sum
string=input()
print(change(string))