给一个整数(1-3999),转化成落马数字。直接模拟吧,注意特盘4和9的情况。罗马数字的规则参考http://zhidao.baidu.com/link?url=aFXj4HeKQCT1gv38YE7jjHz2f0KUiGS2E2yoCMRV4c3KDa9HnWo1FOIJR6l1MthPHSsEKMLp08VfkhiZ7wh3KK
大致以下几条:
(1)基本数字Ⅰ、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个;放在大数的左边只能用一个。 (2)不能把基本数字 V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目;放在大数的右边采用相加的方式构成数目,只能使用一个。 (3)V 和 X 左边的小数字只能用Ⅰ。 (4)L 和 C 左边的小数字只能用×。 (5)D 和 M 左 边的小数字只能用 C 。
class Solution(object):
def intToRoman(self, num):
"""
:type num: int
:rtype: str
"""
nums = [1000,500,100,50,10,5,1]
res = ''
x = num // 1000
for i in range(x) : res = res + 'M'
num = num % 1000
x = num // 100
ti = 0
if x == 9:
res = res + 'CM'
elif x == 4:
res = res + 'CD'
else:
if (x>=5):
ti = x - 5
res = res + 'D'
else:
ti = x
for i in range(ti) : res = res + 'C'
num = num % 100
x = num // 10
if x == 9:
res = res + 'XC'
elif x == 4:
res = res + 'XL'
else:
if (x >= 5) :
ti = x - 5
res = res + 'L'
else : ti = x
for i in range(ti) : res = res +'X'
num = num % 10
x = num
if x == 9:
res = res + 'IX'
elif x == 4: res = res + 'IV'
else :
if (x >= 5):
ti = x - 5
res = res + 'V'
else: ti = x
for i in range(ti) :res = res + 'I'
return res