Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.
Example 1:
Input: "III"
Output: 3
Example 2:
Input: "IV"
Output: 4
Example 3:
Input: "IX"
Output: 9
Example 4:
Input: "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.
Example 5:
Input: "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
代码:
#include<iostream>
using namespace std;
intgetInteger(charx){
switch(x) {
case'I':
return1;
break;
case'V':
return5;
break;
case'X':
return10;
break;
case'L':
return50;
break;
case'C':
return100;
break;
case'D':
return500;
break;
case'M':
return1000;
break;
default:
return0;
break;
}
}
intromanToInt(strings) {
intlength=s.length();
inttotal=0;
for(inti=0;i
{
if(i+1==length)
{
total+=getInteger(s[i]);
}
else
{
if(getInteger(s[i]) //前数小于后数 需要减
{
total+=getInteger(s[i+1])-getInteger(s[i]);
i++;
}
else
{
total+=getInteger(s[i]);
}
}
}
returntotal;
}
intmain(intargc,constchar* argv[]) {
// insert code here...
stringa;
while(cin>>a)
{
cout<
}
cout << "Hello, World!\n";
return 0;
}
网友评论