UVA - 621 Secret Research

来源:互联网 发布:为什么叫云计算 编辑:程序博客网 时间:2024/06/06 17:42


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 consecutiven 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 ? 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 

478783519078944

Sample Output 

+-?*题意按照题目中的要求顺序判断四种情况,按照符合条件各自输出;
#include<stdio.h>#include<string.h>#include<iostream>#define llu long long unsigned;using namespace std;int main(){int n;string k;;cin >> n;getchar();for(int i = 0;i < n; i ++){cin >> k;int m = k.length();if( m == 1){if(k[0] == '1' || k[1] == '4')cout <<"+"<<endl;}else if(m ==2){if(k[0] == '7' && k[1] == '8')cout <<"+"<<endl;}else{if(k[m - 2] == '3'&& k[m- 1] == '5')cout <<"-"<<endl;else if(k[0] =='9'&& k[m - 1]== '4')cout <<"*"<<endl;elsecout <<"?"<<endl;}}return 0;}



 
0 0