给定一系列正整数,请按要求对数字进行分类,并输出以下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 "stdio.h" 2 #define size 1000 3 4 int main(int argc, char const *argv[]) 5 { 6 int n, a[size]; 7 while(scanf("%d", &n) != EOF) 8 { 9 int i, b1flag = 1; 10 int b[5] = {0}; 11 float b3 = 0; 12 int b3Count = 0; 13 for (i = 0; i < n; ++i) 14 { 15 scanf("%d", &a[i]); 16 } 17 for (i = 0; i < n; ++i) 18 { 19 if(a[i] % 5 == 0 && a[2] % 2 == 0) 20 { 21 b[0] += a[i]; 22 } 23 24 if(a[i] % 5 == 1) 25 { 26 b[1] += a[i] * b1flag; 27 b1flag = 0 - b1flag; 28 } 29 if(a[i] % 5 == 2) 30 b[2] ++; 31 if(a[i] % 5 == 3) 32 { 33 b[3] += a[i]; 34 b3Count++; 35 } 36 if(a[i] % 5 == 4) 37 { 38 if(b[4] < a[i]) 39 b[4] = a[i]; 40 } 41 } 42 if(b3Count) b3 = (double)b[3] / b3Count; 43 // 输出 44 if(b[0] == 0) 45 printf("N"); 46 else 47 printf("%d", b[0]); 48 49 for (i = 1; i < 5; ++i) 50 { 51 if(b[i] == 0) 52 printf(" N"); 53 else 54 { 55 if(i == 3) 56 printf(" %.1f", b3); 57 else 58 printf(" %d", b[i]); 59 } 60 } 61 } 62 return 0; 63 }