题目描述请点击查看LeetCode 题目描述
Python3 代码解答如下:
class Solution:
def intToRoman(self, num):
"""
:type num: int
:rtype: str
"""
"""
思路:提取数字的各个位数,并加以判断,需要注意的是,百、十、个、需要判断9、大于5小于9、4、小于4
"""
a = []
#千位
q = num // 1000
a.append('M'*q)
#百位
b = num % 1000 // 100
if b == 9:
a.append('CM')
elif b >= 5:
a.append('D'+'C'*(b%5))
elif b == 4:
a.append('CD')
else:
a.append('C'*b)
#十位
s = num % 100 // 10
if s == 9:
a.append('XC')
elif s >= 5:
a.append('L'+'X'*(s%5))
elif s == 4:
a.append('XL')
else:
a.append('X'*s)
#个位
g = num % 10
if g == 9:
a.append('IX')
elif g >= 5:
a.append('V'+'I'*(g%5))
elif g == 4:
a.append('IV')
else:
a.append('I'*g)
print(''.join(a))
return ''.join(a)