羅馬數字共有7個,即i(1)、v(5)、x(10)、l(50)、c(100)、d(500)和m(1000)。
一、重複數次:乙個羅馬數字重複幾次,就表示這個數的幾倍。
二、右加左減:
2.1 在較大的羅馬數字的右邊記上較小的羅馬數字,表示大數字加小數字。
2.2 在較大的羅馬數字的左邊記上較小的羅馬數字,表示大數字減小數字。
2.3 左減的數字有限制,僅限於i、x、c。比如45不可以寫成vl,只能是xlv
2.4 但是,左減時不可跨越乙個位數。比如,99不可以用ic(100 - 1)表示,而是用xcix([100 - 10] + [10 - 1])表示。(等同於阿拉伯數字每位數字分別表示。)
2.5 左減數字必須為一位,比如8寫成viii,而非iix。
2.6 右加數字不可連續超過三位,比如14寫成xiv,而非xiiii。(見下方「數碼限制」一項。)
三、加線乘千:
3.1 在羅馬數字的上方加上一條橫線或者加上下標的ⅿ,表示將這個數乘以1000,即是原數的1000倍。
3.2 同理,如果上方有兩條橫線,即是原數的1000000(1000^)倍。
四、數碼限制:
4.1 同一數碼最多只能出現三次,如40不可表示為***x,而要表示為xl。
4.2 例外:由於iv是古羅馬神話主神朱庇特(即ivpiter,古羅馬字母裡沒有j和u)的首字,因此有時用iiii代替ⅳ。
羅馬數字求解
include include int main int n,i,s,k,sum char a 3000 while scanf s a eof n strlen a sum 0 k 1000 for i 0 iswitch a i case m s 1000 break case d s 500 ...
羅馬數字轉換
class solution object def romantoint self,s type s str rtype int 使用整數轉羅馬數的兩個列表 num tuple 1000,500,100,50,10,5,1 roman tuple m d c l x v i 使用dict和zip方法...
羅馬數字轉化
先看位置計數的定義 一種表達數字的系統,數字按照順序排列 每個數字有乙個位值,數字的值是每個數字和位值的乘積之和。電腦科學導論 p25 羅馬數字計數法 相同的數字連寫,所表示的數等於這些數字相加得到的數,如 3 小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數,如 8 12 小的數字 限...