解決羅馬數字轉阿拉伯數字的新方案
參考(羅馬數字的符號一共只有7個:i(代表1)、v(代表5)、x(代表10)、l(代表50)、c代表100)、d(代表500)、m(代表1,000)。這7個符號位置上不論怎樣變化,它所代表的數字都是不變的。它們按照下列規律組合起來,就能表示任何數:1.重複次數:乙個羅馬數字符號重複幾次,就表示這個數的幾倍。如:「iii」表示「3」;「***」表示「30」。2.右加左減:乙個代表大數字的符號右邊附乙個代表小數字的符號,就表示大數字加小數字,如「vi」表示「6」,「dc」表示「600」。乙個代表大數字的符號左邊附乙個代表小數字的符號,就表示大數字減去小數字的數目,如「iv」表示「4」,「xl」表示「40」,「vd」表示「495」。3.上加橫線:在羅馬數字上加一橫線,表示這個數字的一千倍。如:「xv」表示「15,000」,「clxv」表示「165,000」。因此1991就是"ⅰⅸⅸⅰ"
**是表示除去第三種情況後考慮前兩種1-3999之間的羅馬數字轉阿拉伯數字。主要思路是列舉情況,根據列舉找到對應的數字進行轉換。
class solution else
}return num;
}private:
unordered_mapdict = , , , , , , , , , , , , };
};
這裡注意字串的問題(substr,find用法)
這裡參考(
ubstr(字串,擷取開始位置,擷取長度) //返回擷取的字
substr(『hello world』,0,1) //返回結果為 『h』 *從字串第乙個字元開始擷取長度為1的字串
substr(『hello world』,1,1) //返回結果為 『h』 *0和1都是表示擷取的開始位置為第乙個字元
substr(『hello world』,2,4) //返回結果為 『ello』
substr(『hello world』,-3,3)//返回結果為 『rld』 *負數(-i)表示擷取的開始位置為字串右端向左數第i個字元
阿拉伯數字轉羅馬數字
最開始想的是當成進製轉,比如說 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轉為...