大意:按照所给规律,将罗马数字转化为十进制数字
//Memory: 220K //Time: 15MS #include <stdio.h> #include <string.h> int main() { int cas; scanf("%d",&cas); while(cas--) { int sum=0; char a[50]; scanf("%s",&a); int l=strlen(a); int i; for(i=0;i<l;i++) { if(a[i]=='M') sum+=1000; else if(a[i]=='D') sum+=500; else if(a[i]=='C') { if(a[i+1]=='M' ||a[i+1]=='D') sum-=100; else sum+=100; } else if(a[i]=='L') sum+=50; else if(a[i]=='X') { if(a[i+1]=='L' ||a[i+1]=='C') sum-=10; else sum+=10; } else if(a[i]=='V') sum+=5; else if(a[i]=='I') { if(a[i+1]=='V' ||a[i+1]=='X') sum-=1; else sum+=1; } } printf("%d\n",sum); } return 0; }