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.
输出
-
For each test case, display a single line containing a decimal number corresponding to the given Roman Numerals.
样例输入
-
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>
#include <string.h>
int main()
{
char a[5];
int i = 1, t = 0;
while (scanf("%s", a) != EOF) {
if (strcmp(a, "I") == 0) t = 1;
else if (strcmp(a, "II") == 0) t = 2;
else if (strcmp(a, "III") == 0) t = 3;
else if (strcmp(a, "IV") == 0) t = 4;
else if (strcmp(a, "V") == 0) t = 5;
else if (strcmp(a, "VI") == 0) t = 6;
else if (strcmp(a, "VII") == 0) t = 7;
else if (strcmp(a, "VIII") == 0) t = 8;
else if (strcmp(a, "IX") == 0) t = 9;
else if (strcmp(a, "X") == 0) t = 10;
else if (strcmp(a, "XI") == 0) t = 11;
else if (strcmp(a, "XII") == 0) t = 12;
printf("Case %d: %d\n", i++, t);
}
return 0;
}
思路解析:
题意,看输入输出就明白了。
题中是对字符串处理的,如果输入的字符串中有这12个字符串,就可以输出了,所以对两个字符串的比较,strcmp()函数,就可以用到了,输出对应的t的值。
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. 输出
- For each test case, display a single line containing a decimal number corresponding to the given Roman Numerals. 样例输入
-
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>
#include <string.h>
int main()
{
char a[5];
int i = 1, t = 0;
while (scanf("%s", a) != EOF) {
if (strcmp(a, "I") == 0) t = 1;
else if (strcmp(a, "II") == 0) t = 2;
else if (strcmp(a, "III") == 0) t = 3;
else if (strcmp(a, "IV") == 0) t = 4;
else if (strcmp(a, "V") == 0) t = 5;
else if (strcmp(a, "VI") == 0) t = 6;
else if (strcmp(a, "VII") == 0) t = 7;
else if (strcmp(a, "VIII") == 0) t = 8;
else if (strcmp(a, "IX") == 0) t = 9;
else if (strcmp(a, "X") == 0) t = 10;
else if (strcmp(a, "XI") == 0) t = 11;
else if (strcmp(a, "XII") == 0) t = 12;
printf("Case %d: %d\n", i++, t);
}
return 0;
}