1059 C语言竞赛 (20 分)
【代码】
1#include<cstdio>
2#include<math.h>
3using namespace std;
4int sushu(int a)
5{
6 for(int i=2;i<=sqrt(a);i++)
7 if(a%i==0)
8 return 0;
9 return 1;
10}
11int main()
12{
13 int n,m,i;
14 scanf("%d",&n);
15 int q[10010]={0};
16 for(i=1;i<=n;i++)
17 {
18 int n1;
19 scanf("%d",&n1);
20 q[n1]=i;
21 }
22 scanf("%d",&m);
23 while(m--)
24 {
25 int m1;
26 scanf("%d",&m1);
27 if(q[m1]==-1)
28 {
29 printf("%04d: Checked\n",m1);
30 continue;
31 }
32 if(q[m1]==1)
33 {
34 printf("%04d: Mystery Award\n",m1);
35 q[m1]=-1;
36 continue;
37 }
38 if(q[m1]==0)
39 {
40 printf("%04d: Are you kidding?\n",m1);
41 continue;
42 }
43 if(sushu(q[m1])==1)
44 {
45 printf("%04d: Minion\n",m1);
46 q[m1]=-1;
47 continue;
48 }
49 printf("%04d: Chocolate\n",m1);
50 q[m1]=-1;
51 }
52 return 0;
53}
【思路】
题目很明显是分情况讨论,因此处理的时候针对不同类型使用判断即可。