uva 621 - Secret Research
Secret Research 

At a certain laboratory results of secret research are thoroughly encrypted. A result of a single experiment is stored as an information of its completion:

 


`positive result', `negative result', `experiment failed' or `experiment not completed'

 


The encrypted result constitutes a string of digits S, which may take one of the following forms:

 


$\bullet$
positive result 		 S = 1 or S = 4 or S = 78 
$\bullet$
negative result 		 S = S35 
$\bullet$
experiment failed 		 S = 9S4 
$\bullet$
experiment not completed 		 S = 190S

(A sample result S35 means that if we add digits 35 from the right hand side to a digit sequence then we shall get the digit sequence corresponding to a failed experiment)

 


You are to write a program which decrypts given sequences of digits.

 

Input 

A integer n stating the number of encrypted results and then consecutive nlines, each containing a sequence of digits given as ASCII strings.

 

Output 

For each analysed sequence of digits the following lines should be sent to output (in separate lines):

 


		 + 		  for a positive result
		 - 		  for a negative result
		 * 		  for a failed experiment
		 ? 		  for a not completed experiment

In case the analysed string does not determine the experiment result, a first match from the above list should be outputted.

 

Sample Input 

 

4
78
7835
19078
944

 

Sample Output 

+
-
?
*

 

 


Miguel A. Revilla
2000-01-10

话说这道水题开始没看懂。。。。不多说,看代码就可以看懂

拙劣的代码
 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <cstdio>
 4 #include <cstring>
 5 
 6 using namespace std;
 7 
 8 int main(void)
 9 {
10     char a[1000];
11 
12     while (cin >> a)
13     {
14         int len = strlen(a);
15         if (!strcmp(a, "1") || !strcmp(a, "4") || !strcmp(a, "78"))
16             cout << '+' << endl;
17         else
18         {
19             if (a[len-1] == '5' && a[len-2] == '3') cout << '-' << endl;
20             else if (a[len-1] == '4' & a[0] == '9') cout << '*' << endl;
21             else if (a[0] == '1' && a[1] == '9' && a[2] == '0') cout <<'?'
22             << endl;
23         }
24     }
25 
26     return 0;
27 }
posted on 2012-11-07 23:32  aries__liu  阅读(241)  评论(0编辑  收藏  举报