HDU 4256
Posted fangxiaoqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 4256相关的知识,希望对你有一定的参考价值。
The Famous Clock
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1399 Accepted Submission(s): 940
Problem Description
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?
Input
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.
Output
For each test case, display a single line containing a decimal number corresponding to the given Roman Numerals.
Sample Input
IIIIIIIVVVIVIIVIIIIXXXIXII
Sample Output
Case 1: 1Case 2: 2Case 3: 3Case 4: 4Case 5: 5Case 6: 6Case 7: 7Case 8: 8Case 9: 9Case 10: 10Case 11: 11Case 12: 12
解法
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 char s[10]; 6 int k=0; 7 int ans; 8 while(gets(s)) 9 { 10 ans=0; 11 int len=strlen(s); 12 for(int i=0;i<len;i++) 13 { 14 if(s[i]==‘I‘)ans++; 15 if(s[i]==‘V‘)ans=5-ans; 16 if(s[i]==‘X‘)ans=10-ans; 17 } 18 printf("Case %d: %d ",++k,ans); 19 } 20 return 0; 21 }
以上是关于HDU 4256的主要内容,如果未能解决你的问题,请参考以下文章