import java.util.*;
public class Main {
public static int r(String str) {
int sum=0;
for(int i=0;i<str.length();i++) {
char c=str.charAt(i);
if(c=='I') sum+=1;
if(c=='V') sum+=5;
if(c=='X') sum+=10;
if(c=='L') sum+=50;
if(c=='C') sum+=100;
if(c=='D') sum+=500;
if(c=='M') sum+=1000;
}
if(str.indexOf("IV")>-1) sum-=2;
if(str.indexOf("IX")>-1) sum-=2;
if(str.indexOf("IL")>-1) sum-=2;
if(str.indexOf("IC")>-1) sum-=2;
if(str.indexOf("ID")>-1) sum-=2;
if(str.indexOf("IM")>-1) sum-=2;
if(str.indexOf("VL")>-1) sum-=10;
if(str.indexOf("VC")>-1) sum-=10;
if(str.indexOf("VD")>-1) sum-=10;
if(str.indexOf("VM")>-1) sum-=10;
if(str.indexOf("XL")>-1) sum-=20;
if(str.indexOf("XC")>-1) sum-=20;
if(str.indexOf("XD")>-1) sum-=20;
if(str.indexOf("XM")>-1) sum-=20;
if(str.indexOf("LD")>-1) sum-=100;
if(str.indexOf("LM")>-1) sum-=100;
if(str.indexOf("CD")>-1) sum-=200;
if(str.indexOf("CM")>-1) sum-=200;
return sum;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
String[] s=new String[n];
for(int i=0;i<n;i++) {
s[i]=in.next();
}
for(int i=0;i<n;i++) {
System.out.println(r(s[i]));
}
}
}
import java.util.*;
public class Main {
public static int r(String str) {
Map<Character,Integer> mp=new HashMap<>();
mp.put('I', 1);
mp.put('V', 5);
mp.put('X', 10);
mp.put('L', 50);
mp.put('C', 100);
mp.put('D', 500);
mp.put('M', 1000);
int firstValue=0;
int nextValue=0;
int sum=0;
for(int i=0;i<str.length();i++) {
firstValue=mp.get(str.charAt(i));
//如果是最后一个数,直接加
if(i==str.length()-1) {
sum+=firstValue;
}else {
nextValue=mp.get(str.charAt(i+i));
if(firstValue>=nextValue) {
sum+=firstValue;
}else {
sum-=firstValue;
}
}
}
return sum;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
String[] s=new String[n];
for(int i=0;i<n;i++) {
s[i]=in.next();
}
for(int i=0;i<n;i++) {
System.out.println(r(s[i]));
}
}
}
罗马数字转整型(java)
最新推荐文章于 2023-04-28 14:11:19 发布