1. 程式人生 > >將阿拉伯數字轉換為羅馬數字

將阿拉伯數字轉換為羅馬數字

  昨天,寫了一個將羅馬數字轉換成阿拉伯數字的過程,今天來寫一個反過程吧,將阿拉伯數字轉化成羅馬字串
實現原理很簡單,一看就能明白的,將數字先拆分成一個一個的小於10的數字,然後在各自轉換則可。

PythonCode:
def numToRomanNum(Num):
 """digital will be converted into Roman numerals,Ex: numToRomanNum(3999)"""
     if Num < 1 or Num > 3999:
         print 'The Num must in 1-3999'
     else
: NumDic = { '1':('I','IV','V','IX'), '2':('X','XL','L','XC'), '3':('C','CD','D','CM'), '4':('M') } items = sorted(NumDic.items()) retstr = '' for item in items: str = '' (Num,modNum) = divmod(Num,10) if
modNum != 0: if item[0] != '4': if modNum <= 3: while modNum > 0: str = str.join(['',item[1][0]]) modNum -= 1 elif modNum < 5: str = item[1][1] elif
modNum == 5: str = item[1][2] elif modNum < 9: str = item[1][2] while modNum > 5: str = str.join(['',item[1][0]]) modNum -= 1 else: str = item[1][3] else: while modNum > 0: str = str.join(['',item[1][0]]) modNum -= 1 retstr = str.join(['',retstr]) return retstr