integer to roman

我是最怕这个题目了,因为从来都没有真正理解过。

真正做起来还挺容易的,哈哈,一切反动派都是纸老虎

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class (object):
def intToRoman(self, num):
"""
:type num: int
:rtype: str
"""
# I V X L C D M
# 1 5 10 50 100 500 1,000
# special cases
#Number 4 9 40 90 400 900
#Note IV IX XL XC CD CM
number = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
symbol = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
# simplest idea is to mod num with largest number then keep doing that
res = ""
for i in range(len(number)):
n = num / number[i]
num = num % number[i]
res += n * symbol[i]
return res