罗马数字包含以下七种字符: I
, V
, X
, L
,C
,D
和 M
。
字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000
通常情况下载罗马数字中,如果左边的数字小于又边的数字,那么就用左边的数字减去右边的数字,相反则相加,例如XII表示2,IV表示4,VI则表示6;
public static int romanToInt(String s) {
int ans=0;
int preSum=getnum(s.charAt(0));
for (int i=1;i<s.length();i++){
int Sum=getnum(s.charAt(i));
if (preSum>=Sum){
ans=ans+preSum;
}else{
ans=ans-preSum;
}
preSum=Sum;
}
ans=ans+preSum;
return ans;
}
public static int getnum(char ch) {
switch (ch) {
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
String s=scanner.next();
System.out.println(romanToInt(s));
}