首页 > ACM题库 > HDU-杭电 > HDU 4256-The Famous Clock[解题报告]HOJ
2015
05-23

HDU 4256-The Famous Clock[解题报告]HOJ

The Famous Clock

问题描述 :

Mr. B, Mr. G and Mr. M are now in Warsaw, Poland, for the 2012’s ACM-ICPC World Finals Contest. They’ve decided to take a 5 hours training every day before the contest. Also, they plan to start training at 10:00 each day since the World Final Contest will do so. The scenery in Warsaw is so attractive that Mr. B would always like to take a walk outside for a while after breakfast. However, Mr. B have to go back before training starts, otherwise his teammates will be annoyed. Here is a problem: Mr. B does not have a watch. In order to know the exact time, he has bought a new watch in Warsaw, but all the numbers on that watch are represented in Roman Numerals. Mr. B cannot understand such kind of numbers. Can you translate for him?

输入:

Each test case contains a single line indicating a Roman Numerals that to be translated. All the numbers can be found on clocks. That is, each number in the input represents an integer between 1 and 12. Roman Numerals are expressed by strings consisting of uppercase ‘I’, ‘V’ and ‘X’. See the sample input for further information.

输出:

Each test case contains a single line indicating a Roman Numerals that to be translated. All the numbers can be found on clocks. That is, each number in the input represents an integer between 1 and 12. Roman Numerals are expressed by strings consisting of uppercase ‘I’, ‘V’ and ‘X’. See the sample input for further information.

样例输入:

I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII

样例输出:

Case 1: 1
Case 2: 2
Case 3: 3
Case 4: 4
Case 5: 5
Case 6: 6
Case 7: 7
Case 8: 8
Case 9: 9
Case 10: 10
Case 11: 11
Case 12: 12

#include<stdio.h>
int main()
{
	int i,sum,t=1,b,a;
	char s[10];
	while(scanf("%s",s)!=-1)
	{
	    	sum=0;
		    if(s[0]=='I')
				b=1;
			else if(s[0]=='V')
				b=5;
			else if(s[0]=='X')
				b=10;
			sum+=b;
		for(i=1;s[i];i++)
		{
			if(s[i]=='I')
				a=1;
			else if(s[i]=='V')
				a=5;
			else if(s[i]=='X')
				a=10;
			if(a<=b)
				sum+=a;
			else
				sum+=(a-2*b);
		}
		printf("Case %d: %d\n",t++,sum);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

参考:http://blog.csdn.net/aixiaoling1314/article/details/8795032