• 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:

    
    $ullet$
    positive result 		 S = 1 or S = 4 or S = 78 
    $ullet$
    negative result 		 S = S35 
    $ullet$
    experiment failed 		 S = 9S4 
    $ullet$
    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
    		 ? 		  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<cstdio>
     3 #include<cstring>
     4 
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n;
    10     char s[10000];
    11 
    12     scanf("%d",&n);
    13     getchar();
    14 
    15     while(n--)
    16     {
    17         gets(s);
    18         int len=strlen(s);
    19         if( ( len==1 && (s[0]=='1'||s[0]=='4') ) || ( len==2 && s[0]=='7' &&s[1]=='8' ) )
    20             printf("+
    ");
    21         else if( len>=3 && s[len-1]=='5' && s[len-2]=='3' )
    22             printf("-
    ");
    23         else if( len>=3 && s[0]=='9' && s[len-1]=='4' )
    24             printf("*
    ");
    25         else if( len>=4 && s[0]=='1' && s[1]=='9' && s[2]=='0' )
    26             printf("?
    ");
    27     }
    28 
    29     return 0;
    30 }
    [C++]
  • 相关阅读:
    LeetCode 404. 左叶子之和
    三年了
    LeetCode 543. 二叉树的直径
    求结点在二叉排序树中层次的算法
    LeetCode 98. 验证二叉搜索树
    LeetCode 236. 二叉树的最近公共祖先
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 113. 路径总和 II
    LeetCode 107. 二叉树的层次遍历 II
    LeetCode 144. 二叉树的前序遍历 (非递归)
  • 原文地址:https://www.cnblogs.com/lzj-0218/p/3518629.html
Copyright © 2020-2023  润新知