现在的位置: 首页 > 综合 > 正文

hdu 2352 Verdis Quo

2013年06月01日 ⁄ 综合 ⁄ 共 529字 ⁄ 字号 评论关闭

大意:按照所给规律,将罗马数字转化为十进制数字

//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;
}

抱歉!评论已关闭.