帮忙找错啦!!HDOJ上2352

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:50:20
题目 http://acm.hdu.edu.cn/showproblem.php?pid=2352

我的code
#include<stdio.h>
#include<string.h>
void main()
{
int n,i,s,l;
char a[10002];
scanf("%d",&n);
getchar();
while(n--)
{
s=0;
gets(a);
l=strlen(a);
for(i=0;i<l;i++)
{
if(a[i]=='I')s+=1;
if(a[i]=='V')s+=5;
if(a[i]=='X')s+=10;
if(a[i]=='L')s+=50;
if(a[i]=='C')s+=100;
if(a[i]=='D')s+=500;
if(a[i]=='M')s+=1000;
}
for(i=0;i<l;i++)
{
if(a[i]=='I'&&(a[i+1]=='V'||a[i+1]=='X'||a[i+1]=='L'||a[i+1]=='C'||a[i+1]=='D'))s-=2;
if(a[i]=='X'&&(a[i+1]=='L'||a[i+1]=='C'||a[i+1]=='D'))s-=20;

很简单的题目,这样就对了!!!

#include<stdio.h>
#include<string.h>
void main()
{
int n,i,s,l;
char a[10002];

scanf("%d",&n);
getchar();
while(n--)
{
s=0;
gets(a);
l=strlen(a);
for(i=0;i<l;i++)
{
if(a[i]=='I')s+=1;
if(a[i]=='V')s+=5;
if(a[i]=='X')s+=10;
if(a[i]=='L')s+=50;
if(a[i]=='C')s+=100;
if(a[i]=='D')s+=500;
if(a[i]=='M')s+=1000;
}
for(i=0;i<l;i++)
{
if(a[i]=='I'&&(a[i+1]=='V'||a[i+1]=='X'))s-=2; //////////////////注意这里的条件
if(a[i]=='X'&&(a[i+1]=='L'||a[i+1]=='C'))s-=20;//////////////////注意这里的条件
if(a[i]=='C'&&(a[i+1]=='D'||a[i+1]=='M'))s-=200;//////////////////注意这里的条件
}
printf("%d\n",s);
}
}

另外,这个也可以通过,这个更短,可以让你排名很