Decimal Roman
1 I
5 V
10 X
50 L
100 C
500 D
1000 M
eg.3999=MMMCMXCIX,1997=MCMXCVII,2015=MMXV
菜鸡版
def convert_to_roman(num):
string=""
while num>=1000:
num-=1000
string+="M"
while num>=100:
if num>=900:
num-=900
string+="CM"
elif num>=500:
num-=500
string+="D"
elif num>=400:
num-=400
string+="CD"
else:
num-=100
string+="C"
while num>=10:
if num>=90:
num-=90
string+="XC"
elif num>=50:
num-=50
string+="L"
elif num>=40:
num-=40
string+="XL"
else:
num-=10
string+="X"
while num>=1:
if num>=9:
num-=9
string+="IX"
elif num>=5:
num-=5
string+="V"
elif num>=4:
num-=4
string+="IV"
else:
num-=1
string+="I"
return string
大神版
其实思路一样,代码可读性差好多==
创建两个list,归纳
def convert_to_roman(num):
list1=[1000,900,500,400,100,90,50,40,10,9,5,4,1]
list2=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]
string=""
for i in range(len(list1)):
while num>=list1[i]:
num-=list1[i]
string+=list2[i]
return string