1. 程式人生 > >PAT——1059. C語言競賽

PAT——1059. C語言競賽

args break 組成 parse class bre com ++ ()

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 }

PAT——1059. C語言競賽