羅馬數字轉整數

2021-08-18 10:18:42 字數 917 閱讀 8873

給定乙個羅馬數字,將其轉換成整數。

返回的結果要求在 1 到 3999 的範圍內。

羅馬數字:

羅馬數字是阿拉伯數字傳入之前使用的一種數碼。羅馬數字採用七個羅馬字母作數字、即ⅰ(1)、x(10)、c(100)、m(1000)、v(5)、l(50)、d(500)。

記數的方法:

1、相同的數字連寫,所表示的數等於這些數字相加得到的數,如 ⅲ=3;

2、小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數,如 ⅷ=8、ⅻ=12;

3、小的數字(限於 ⅰ、x 和 c)在大的數字的左邊,所表示的數等於大數減小數得到的數,如 ⅳ=4、ⅸ=9;

4、在乙個數的上面畫一條橫線,表示這個數增值 1,000 倍

思路: 

使用map存放羅馬數字和數字

羅馬數字: 當相同數連寫 或 小數在大數右邊時,直接加,所以一直直接加;

當小數在大數左邊時,要減去小數,此時因為小數在左邊已經加過一次了,所以減去小數的2倍。

**:static const auto __ = ()();

class solution {

public:

int romantoint(string s) {

mapm;

int result,pos,curr; //curr表示當前數字,pos記錄上次數字

m['i']=1;

m['x']=10;

m['c']=100;

m['m']=1000;

m['v']=5;

m['l']=50;

m['d']=500;

pos=m[s[0]];

if(s.size()==1) return pos;

result=pos;

for(int i=1;i

羅馬數字轉整數

羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數...

羅馬數字轉整數

羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數字...

整數轉羅馬數字

題目 羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在...