题目:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
链接:https://oj.leetcode.com/problems/integer-to-roman/
描述:把整形转化为罗马数字
solution by python:
class Solution:
# @return a string
def intToRoman(self, num):
numDict= {0:'',1:'I',5:'V',10:'X',50:'L',100:'C',500:'D',1000:'M'}
x = num; p=1
while x > 0:
x /= 10
if x>0: p*=10
ans = ''
while p>0:
s = numDict[p]
n = num/p
if n<4: ans += s*n
elif n==4: ans += s+numDict[5*p]
elif n==5: ans += numDict[5*p]
elif n<9: ans += numDict[5*p]+s*(n-5)
elif n ==9: ans += s+numDict[10*p]
num %= p
p /= 10
return ans