水题一道,无需多说。。
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:
positive result S = 1 or S = 4 or S = 78 negative result S = S35 experiment failed S = 9S4 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
n
lines, 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 ?
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
+
-
?
*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
char s[100000];
int main()
{
int i, k, n;
scanf("%d ", &n);
for(i = 0; i < n; i++)
{
gets(s);
k = strlen(s);
if(strcmp(s,"1")==0||strcmp(s,"4")==0||strcmp(s,"78")==0)
puts("+");
else if(s[k-1]=='5'&&s[k-2]=='3')
puts("-");
else if(s[0]=='9'&&s[k-1]=='4')
puts("*");
else if(s[0]=='1'&&s[1]=='9'&&s[2]=='0')
puts("?");
else
printf("%c\n",s[0]);
}
return 0;
}