题目
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
-
A
1
=
A_1=
A1=能被 5 整除的数字中所有偶数的和;
-
A
2
=
A_2=
A2=将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算
n
1
−
n
2
+
n
3
−
n
4
⋯
n_1−n_2+n_3−n_4⋯
n1−n2+n3−n4⋯;
-
A
3
=
A_3=
A3=被 5 除后余 2 的数字的个数;
-
A
4
=
A_4=
A4=被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
-
A
5
=
A_5=
A5=被 5 除后余 4 的数字中最大数字。
输入格式
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数
N
N
N,随后给出
N
N
N个不超过 1000 的待分类的正整数。数字间以空格分隔。
输入样例
13 1 2 3 4 5 6 7 8 9 10 20 16 18
8 1 2 4 5 6 7 9 16
输出样例
30 11 2 9.7 9
N 11 2 N 9
代码
#include <stdio.h>
#define true 1
#define false 0
int main(){
int N;
long long a;
long long A1=0, A2=0, A3=0, A4=0, A5=0;
double A4_rs=0;
_Bool sign = true;
_Bool flag = false;
scanf("%d",&N);
for (int i = 1; i <= N ; i++){
scanf("%d",&a);
if(a%5 == 0 && a%2 == 0){
A1 += a;
}
if(a%5 == 1){
flag = true;
if(sign){
A2 += a;
sign = false;
}else{
A2 -= a;
sign = true;
}
}
if(a%5 == 2){
A3++;
}
if(a%5 == 3){
A4++;
A4_rs += a;
}
if(a%5 == 4 && a > A5){
A5 = a;
}
}
if(A1){
printf("%d ",A1);
}else{
printf("N ");
}
if(flag){
printf("%d ",A2);
}else{
printf("N ");
}
if(A3){
printf("%d ",A3);
}else{
printf("N ");
}
if(A4){
printf("%.1f ",A4_rs/A4);
}else{
printf("N ");
}
if(A5){
printf("%d",A5);
}else{
printf("N");
}
return 0;
}
小结
按照题目的意思对数字进行分类即可。