B1012数字分类

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

  • A1​​ = 能被 5 整除的数字中所有偶数的和;
  • A2​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1​​n2​​+n3​​n4​​⋯;
  • A3​​ = 被 5 除后余 2 的数字的个数;
  • A4​​ = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
  • A5​​ = 被 5 除后余 4 的数字中最大数字。

输入格式:

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式:

对给定的 N 个正整数,按题目要求计算 A1​​~A5​​ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

若其中某一类数字不存在,则在相应位置输出 N

输入样例 1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

输出样例 1:

30 11 2 9.7 9
 

输入样例 2:

8 1 2 4 5 6 7 9 16
 

输出样例 2:

N 11 2 N 9

思路:

没啥思路...按要求分情况讨论,输出的时候也要判断数字是否存在。写的挺繁琐的,就基础小白的做法吧嘻嘻嘻

 

 1 #include <iostream>
 2 using namespace std;
 3 int main() {
 4     int n,sign=1;
 5     int a[1001];
 6     int sum1=0, sum2=0,sum3=0, cnt1=0,cnt2=0, maxn=0;
 7     double num;
 8     int flag[5] = {0};
 9     cin >> n;
10     for (int i = 0; i < n; i++) {
11         cin >> a[i];
12         switch (a[i] % 5)
13         {
14         case 0:
15             if (a[i] % 2 == 0)
16             {
17                 sum1 += a[i];
18                 flag[0] = 1;
19             }
20             break;
21         case 1:
22             sum2 += sign*a[i];
23             sign *= -1;
24             flag[1] = 1;
25             break;
26         case 2:
27             cnt1++;
28             flag[2] = 1;
29             break;
30         case 3:
31             sum3 += a[i];
32             cnt2++;
33             flag[3] = 1;
34             break;
35         case 4:
36             if (a[i] > maxn)
37                 maxn = a[i];
38             flag[4] = 1;
39             break;
40         default:
41             break;
42         }
43     }
44     if (flag[0] ==1)
45         printf("%d ", sum1);
46     else printf("N ");
47     if(flag[1]==1)
48         printf("%d ", sum2);
49     else printf("N ");
50     if (flag[2]==1)
51         printf("%d ", cnt1);
52     else printf("N ");
53     if (flag[3]==1) {
54         num= (double)sum3 / cnt2;//类型转换才能得到double类型的商
55         printf("%.1f ", num);
56     }
57     else printf("N ");
58     if(flag[4]==1)
59         printf("%d", maxn);
60     else printf("N");
61     return 0;
62 }

 

 
posted @ 2020-02-08 19:21  PennyXia  阅读(144)  评论(0编辑  收藏  举报