如何用PYTHON解决罗马数字转整数问题
1、打开JUPYTER NOTEBOOK,新建一个PY文档。

3、d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}s = "II"result = 0for i in s: result = result + d[i]print(result)我们先定义一个字典,然后逐个相加。

5、s = "IV"re衡痕贤伎sult = 0d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}if s == "IV": print(4)elif s == "IX": print(9)elif s == "XL": print(40)elif s == "XC": print(90)elif s == "CD": print(400)elif s == "CM": print(900)else: for i in s: result = result + d[i] print(result)这些就是特殊的时候,但是这样写很复杂。

7、s = "MCMXCIV"#M = 1000, CM = 900, XC = 90 and IV = 4#1994result = 0d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}dd = {"IV": 4, "IX": 9, "XL": 40, "XC": 90, "CD": 400, "CM": 900}for i in range(len(s)): if s[i:i+2] in dd: result = result + dd[s[i:i+2]] s = s.strip(s[i:i+2]) else: result = result + d[s[i]]print(result)可能会有同学觉得可以减去不要的字符串,但是遍历的i还是会按照顺序遍历的,所以不可行。

9、s = "MCMXCIV"#M = 1000, CM = 900, XC = 90 and IV = 4#1994result = 0d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}dd = ["IV", "IX", "XL", "XC", "CD", "CM"]for i in range(len(s)): if s[i:i+2] in dd: result -= d[s[i]] else: result += d[s[i]] print(result)也可以设置多个列表方便理解,但是会相对比较缓慢。
