描述
给定一个整数,将其转换成罗马数字。
保证给定的整数在1到3999的范围内。
样例 1:
输入: 1
输出: “I”
样例 2:
输入: 99
输出: “XCIX”
class Solution(object):
def intToRoman(self, num):
"""
:type num: int
:rtype: str
"""
digit = [1000,900,500,400,100,90,50,10,9,5,4,1]
mapping = {1000:"M", 900:"CM", 500:"D",400:"CD", 100:"C", 90: "XC", 50:"L",40: "XL", 10:"X", 9:"IX", 5:"V", 4:"IV", 1:"I"}
res = ""
for i in digit:
res += (num //i) * mapping[i]
num -= i * (num // i)
if num == 0:
break
return res
c=Solution()
d=c.intToRoman(2)
print(d)
输出结果:II
说明digit 不能为这样 [1,4,5,9,10,40,50,90,100,400,500,900,1000]
因为就和计数一样,111,读作是111/100+11/10+1/1。从大到小。
因为罗马数字,取值见表
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
#罗马数字
I,II,III,IV,V=1,2,3,4,5。
1,4,5有区别。所以digit = [1000,900,500,400,100,90,50,10,9,5,4,1]