1:羅馬數字是位置計數嗎?它的缺點是什麼?
回答:羅馬數字不是位置計數。
它的缺點是:書寫困難,不能表示0,不能直觀的表示數字。
2:將自己的學號轉化成羅馬數字
羅馬數字:2020(mmxx)1208(mxxviii)
def getromannum(romanstr):
"""roman numerals will be converted into digital,romanstr is a romanstring"""
import re
if re.search('^m(cm|cd|d?c)(xc|xl|l?x)(ix|iv|v?i)$',romanstr)!=none:
numdic =
romanpattern =
i = 3
numitems = sorted(romanpattern.items())
for romanitem in numitems:
if romanitem[0] != '0':
patstr = numdic["pattern"].join(['',romanitem[1][0]])
if re.search(patstr,romanstr) != none:
numdic["retnum"] += 9*romanitem[1][4]
numdic["pattern"] = patstr
else:
patstr = numdic["pattern"].join(['',romanitem[1][1]])
if re.search(patstr,romanstr) != none:
numdic["retnum"] += 4*romanitem[1][4]
numdic["pattern"] = patstr
else:
patstr = numdic["pattern"].join(['',romanitem[1][2]])
if re.search(patstr,romanstr) != none:
numdic["retnum"] += 5*romanitem[1][4]
numdic["pattern"] = patstr
if numdic["pattern"] == '':
numdic["pattern"] = '^'
tempstr = ''
sum = 0
for k in range(0,4):
pstr = romanitem[1][3].join(['',''])
patstr = numdic["pattern"].join(['',pstr])
if re.search(patstr,romanstr) != none:
sum = k*(10**i)
tempstr = patstr
if tempstr <> '':
numdic["pattern"] = tempstr
else:
numdic["pattern"] = patstr
numdic['retnum'] += sum
i -= 1
return numdic['retnum']
else:
print 'string is not a valid roman numerals'
參考:
阿拉伯數字轉羅馬數字
最開始想的是當成進製轉,比如說 1 i,2 ii,5 v,6 vi public static string inttoroman1 int num int radix stringbuffer sb new stringbuffer for int i radix.length 1 i 0 i r...
阿拉伯數字轉羅馬數字
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 張老師需要用數字來統計學生們的得分情況,但阿拉伯數字已經不能滿足他的要求了,所以想請你幫忙將學生的成績轉換成羅馬數字。羅馬數字是由七個不同的符號來表示 i...
羅馬數字轉阿拉伯數字
羅馬數字轉阿拉伯數字 1.羅馬數字是位置計數嗎?它的缺點是什麼?答 不是,缺點有規則複雜,書寫不便,沒有數字0 羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。python 字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 2.將學號20191210轉為...