给定一系列正整数,请按要求对数字进行分类,并输出以下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 3 int main(void) 4 { 5 int cnt, num; 6 int a1, a2, a3, a4, a5; 7 int i, xor, a2_flag, a4_cnt; 8 9 scanf("%d", &cnt); 10 11 a1 = a2 = a3 = a4 = a5 = 0; 12 13 xor = 1; 14 a2_flag = 0; 15 a4_cnt = 0; 16 17 for(i = 0; i < cnt; i++) 18 { 19 scanf("%d", &num); 20 if(num % 10 == 0) 21 { 22 a1 += num; 23 } 24 25 if(num % 5 == 1) 26 { 27 a2 += (xor == 1 ? num : -num); 28 xor ^= 1; 29 a2_flag = 1; 30 } 31 32 if(num % 5 == 2) 33 { 34 a3 += 1; 35 } 36 37 if(num % 5 == 3) 38 { 39 a4 += num; 40 a4_cnt += 1; 41 } 42 43 if(num % 5 == 4) 44 { 45 if(num > a5) 46 a5 = num; 47 } 48 } 49 50 //printf(a1 == 0 ? "%c " : "%d ", a1 == 0 ? 'N' : a1); 51 if(a1 == 0) 52 printf("N "); 53 else 54 printf("%d ", a1); 55 56 //printf(a2_flag == 0 ? "%c " : "%d ", a2_flag == 0 ? 'N' : a2); 57 if(a2_flag == 0) 58 printf("N "); 59 else 60 printf("%d ", a2); 61 62 //printf(a3 == 0 ? "%c " : "%d ", a3 == 0 ? 'N' : a3); 63 if(a3 == 0) 64 printf("N "); 65 else 66 printf("%d ", a3); 67 68 //printf(a4 == 0 ? "%c " : "%.1f ", a4 == 0 ? 'N' : (float)a4/a4_cnt); 69 if(a4 == 0) 70 printf("N "); 71 else 72 printf("%.1f ", (float)a4/a4_cnt); 73 74 75 //printf(a5 == 0 ? "%c" : "%d", a5 == 0 ? 'N': a5); 76 if(a5 == 0) 77 printf("N"); 78 else 79 printf("%d", a5); 80 81 return 0; 82 }