整數與羅馬數字相互轉換 Python

2021-08-16 06:13:41 字數 1376 閱讀 9362

羅馬數字總共有7個:

i(1),v(5),x(10)、l(50)、c(100)、d(500)和m(1000)

運算規則:

重複數次:乙個羅馬數字重複幾次,就表示這個數的幾倍。例如iii表示的就是3

右加左減:在較大的羅馬數字的右邊記上較小的羅馬數字,表示大數字加小數字。例如viii表示的就是8

在較大的羅馬數字的左邊記上較小的羅馬數字,表示大數字減小數字。例如iv表示的就是4

左減的數字有限制,僅限於i、x、c。比如45不可以寫成vl,只能是xlv

左減時不可跨越乙個位數 ,99不可以用ic(100 - 1)表示,而是用xcix([100 - 10] + [10 - 1])表示。

左減數字必須為一位,比如8寫成viii,而非iix。

右加數字不可連續超過三位,比如14寫成xiv,而非xiiii。

加線乘千:

在羅馬數字的上方加上一條橫線或者加上下標的ⅿ,表示將這個數乘以1000,即是原數的1000倍。

數碼限制:

同一數碼最多只能出現三次,如40不可表示為***x,而要表示為xl

個位:,

十位:,

百位:,

千位

將10進製數轉化成羅馬數字不難,只需將其位數切分,分別匹配就可實現

難的是將羅馬數字轉化成十進位制數。

整數轉羅馬數字:

class solution(object):

def inttoroman(self, num):

""":type num: int

:rtype: str

"""c=

roman=

s=''

for i in roman:

s=s+i

return s

羅馬數字轉整數:

class solution(object):

def romantoint(self, s):

""":type s: str

:rtype: int

"""sum=0

convert=

for i in range(len(s)-1):

if convert[s[i]] < convert[s[i+1]]:

sum -= convert[s[i]]

else:

sum += convert[s[i]]

sum += convert[s[-1]]

return sum

羅馬數字和整數相互轉換

整數轉換成羅馬數字 羅馬數字的基本型為 i 1,v 5,x 10,l 50,c 100,d 500,m 1000,相同的羅馬數字最多不能超過三個。所以對於4只能表示為5 1即iv,左減右加。同理,9 ix,40 xl,90 xc,400 cd,900 cm。根據這些基本型,可以通過貪心演算法,每次匹...

羅馬數字轉換為整數

給定乙個羅馬數字 s s,將羅馬數字轉換成整數。如羅馬數字i,ii,iii,iv,v分別代表數字 1,2,3,4,51,2,3,4,5。首先要來了解一下羅馬數字表示法,基本字元有 7 7 個 i v x l c d m,分別表示 11 5 5 1010 505 0 10010 0 50050 0 1...

羅馬數字轉換為整數

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...