leetcode 012 Integer to Roman
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
把int型的数字转化为罗马数字 模拟easy
class Solution:
# @param {integer} num
# @return {string}
def intToRoman(self, num):
str = ''
m = num / 1000
num = num % 1000
for i in range(m):
str = str + 'M'
if num > 899:
num = num - 900
str = str + 'CM'
if num > 499:
num = num - 500
str = str + 'D'
if num > 399:
num = num - 400
str = str + 'CD'
m = num / 100
num = num % 100
for i in range(m):
str = str + 'C'
if num > 89:
num = num - 90
str = str + 'XC'
if num > 49:
num = num - 50
str = str + 'L'
if num > 39:
num = num - 40
str = str + 'XL'
m = num / 10
num = num % 10
for i in range(m):
str = str + 'X'
if num == 9:
num = num - 9
str = str + 'IX'
if num > 4:
num = num - 5
str = str + 'V'
if num == 4:
num = num - 4
str = str + 'IV'
for i in range(num):
str = str + 'I'
return str
刚看了别人的代码 感觉自己弱爆了啊。。。
class Solution:
# @return a string
def intToRoman(self, num):
val = [
1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4,
1
]
syb = [
"M", "CM", "D", "CD",
"C", "XC", "L", "XL",
"X", "IX", "V", "IV",
"I"
]
roman = ''
i = 0
while num > 0:
for _ in range(num // val[i]):
roman += syb[i]
num -= val[i]
i += 1
return roman
转自http://blog.csdn.net/wanghuiqi2008/article/details/42809401
贵在坚持