#!/usr/bin/env python3
'''
thousands - 0 to 3 Ms
hundreds - 900 (CM),400 (CD),0-300 (0 to 3 Cs),
or 500-800 (D,followed by 0 to 3 Cs)
tens - 90 (XC),40 (XL),0-30 (0 to 3 Xs)
or 50-80 (L,followed by 0 to 3 Xs)
ones - 9 (IX),4 (IV),0-3 (0 to 3 Is)
or 5-8 (V,fowllowed by 0 to 3 Is)
the range of the number need to be converted is 1-3999
'''
import re
def isRoman(num):
pattern = '^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})'
if re.search(pattern, num):
return 1
else:
return 0
def arabic2roman(num):
if num > 3999 or num < 1:
print('num is out of range (1-3999)')
return
dict = {
0: ('', 'M', 'MM', 'MMM'),
1: ('', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'),
2: ('', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'),
3: ('', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX')
}
roman = ''
roman += dict[0][num // 1000 % 10]
roman += dict[1][num // 100 % 10]
roman += dict[2][num // 10 % 10]
roman += dict[3][num % 10]
return roman
def roman2arabic(roman):
if isRoman(roman) == 0:
print('it is not a valid roman number !')
return
num = 0
dict = {'M': 1000, 'D': 500, 'C': 100, 'L': 50, 'X': 10, 'V': 5, 'I': 1}
for i in range(len(roman)-1):
if dict[roman[i]] < dict[roman[i+1]]:
num -= dict[roman[i]]
else:
num += dict[roman[i]]
return num+dict[roman[-1]]
羅馬數(shù)字與阿拉伯?dāng)?shù)字相互轉(zhuǎn)換
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)毁嗦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亲茅,“玉大人,你說(shuō)我怎么就攤上這事】寺啵” “怎么了茵肃?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)袭祟。 經(jīng)常有香客問(wèn)我验残,道長(zhǎng),這世上最難降的妖魔是什么巾乳? 我笑而不...
- 正文 為了忘掉前任您没,我火速辦了婚禮,結(jié)果婚禮上胆绊,老公的妹妹穿的比我還像新娘氨鹏。我一直安慰自己,他們只是感情好辑舷,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布喻犁。 她就那樣靜靜地躺著槽片,像睡著了一般何缓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上还栓,一...
- 那天碌廓,我揣著相機(jī)與錄音,去河邊找鬼剩盒。 笑死谷婆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辽聊。 我是一名探鬼主播纪挎,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼跟匆!你這毒婦竟也來(lái)了异袄?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玛臂,失蹤者是張志新(化名)和其女友劉穎烤蜕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體迹冤,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡讽营,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泡徙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橱鹏。...
- 正文 年R本政府宣布贮勃,位于F島的核電站贪惹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏寂嘉。R本人自食惡果不足惜奏瞬,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泉孩。 院中可真熱鬧硼端,春花似錦、人聲如沸寓搬。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)句喷。三九已至镣典,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唾琼,已是汗流浹背兄春。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像祭饭,于是被迫代替她去往敵國(guó)和親芜茵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- LeetCode題目:Integer to RomanRoman to Integer 羅馬數(shù)字規(guī)則 羅馬數(shù)字共有...
- 五年后倡蝙,你想成為一個(gè)什么樣的人九串? 五年后,你會(huì)怎么來(lái)決策現(xiàn)在要做的事情悠咱? 五年后蒸辆,你會(huì)告訴現(xiàn)在的自己應(yīng)該關(guān)注哪些事...
- 有些事情你不曾體親身驗(yàn)過(guò),就不要自以為是的認(rèn)為會(huì)很輕松析既。因?yàn)槟阒魂P(guān)注到結(jié)果躬贡,卻不曾知道這結(jié)果的背后他所花費(fèi)的時(shí)間和...