zoukankan      html  css  js  c++  java
  • PAT——1059. C语言竞赛

    C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

    0. 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。
    1. 排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!
    2. 其他人将得到巧克力。

    给定比赛的最终排名以及一系列参赛者的ID,你要给出这些参赛者应该获得的奖品。

    输入格式:

    输入第一行给出一个正整数N(<=10000),是参赛者人数。随后N行给出最终排名,每行按排名顺序给出一位参赛者的ID(4位数字组成)。接下来给出一个正整数K以及K个需要查询的ID。

    输出格式:

    对每个要查询的ID,在一行中输出“ID: 奖品”,其中奖品或者是“Mystery Award”(神秘大奖)、或者是“Minion”(小黄人)、或者是“Chocolate”(巧克力)。如果所查ID根本不在排名里,打印“Are you kidding?”(耍我呢?)。如果该ID已经查过了(即奖品已经领过了),打印“ID: Checked”(不能多吃多占)。

    输入样例:

    6
    1111
    6666
    8888
    1234
    5555
    0001
    6
    8888
    0001
    1111
    2222
    8888
    2222
    

    输出样例:

    8888: Minion
    0001: Chocolate
    1111: Mystery Award
    2222: Are you kidding?
    8888: Checked
    2222: Are you kidding?


     1 package com.hone.basical;
     2 import java.util.Scanner;
     3 /**
     4  * 原题目:https://www.patest.cn/contests/pat-b-practise/1059
     5  * @author Xia
     6  * 字符串的处理问题
     7  * 利用flag=0判断查询的id是否在排名中
     8  */
     9 
    10 public class basicalLevel1059CproCompition {
    11 
    12     public static void main(String[] args) {
    13         Scanner in = new Scanner(System.in);
    14         int N = Integer.parseInt(in.nextLine());        //参赛人数
    15         
    16         String[] a = new String[N];            //排名
    17         for (int i = 0; i < N; i++) {
    18             a[i] = in.nextLine();
    19         }
    20         
    21         int[] index = new int[N];        //默认所有的人都没有得过奖
    22         
    23         int k =Integer.parseInt(in.nextLine());
    24         for (int i = 0; i < k; i++) {
    25             int flag = 0;            //用于判断id是否存在于待检测中
    26             String m = in.nextLine();
    27             for (int j = 0; j < a.length; j++) {
    28                 if (m.equals(a[j])) {
    29                     index[j]++;            //如果得过奖则+1
    30                     flag = 1;
    31                     if (index[j] > 1) {
    32                         System.out.println(m+ ": Checked");
    33                         break;
    34                     }
    35                     else if (j==0) {
    36                         System.out.println(m+ ": Mystery Award");
    37                         break;
    38                     }
    39                     else if (isPrime(j+1)) {
    40                         System.out.println(m+ ": Minion");
    41                         break;
    42                     }else {
    43                         System.out.println(m+ ": Chocolate");
    44                         break;
    45                     }
    46                 }
    47             }
    48             if (flag == 0) 
    49                 System.out.println(m+ ": Are you kidding?");
    50         }
    51     }
    52     
    53     private static boolean isPrime(int i) {
    54         if (i== 1){
    55             return false;
    56         }else if (i == 2) {
    57             return true;
    58         }else{
    59             for (int j = 2; j <= Math.sqrt((double)i); j++) {
    60                 if (i%j==0) 
    61                     return false;
    62             }
    63         }
    64         return true;
    65     }
    66 }
  • 相关阅读:
    装饰模式
    You can't specify target table 'a' for update in FROM clause
    Spring事务知识点
    JAVA中的volatile关键字
    验证HashSet和HashMap不是线程安全
    ZYNQ7000 通过FPGA Manager加载比特流
    verilog中可综合的task使用
    verilog条件编译
    Vivado debug异常现象
    Matlab相关函数使用
  • 原文地址:https://www.cnblogs.com/xiaxj/p/8004475.html
Copyright © 2011-2022 走看看