1012 数字分类 (20 分)

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
A1​​= 能被 5 整除的数字中所有偶数的和;
A2​​= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1​​​​−n2​​​​+n3​​​​−n4​​​​⋯;
A3​​=被 5 除后余 2 的数字的个数;
A2​​=被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
A2​​=被 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

代码:

#include<cstdio>

int main() {
    int N,x;
    int A1=0,A2=0,A3=0,A5=0;
    double A4=0.0;
    
    while(scanf("%d",&N)!=EOF){
        int i=1,j=0,A2_judge=0;//这几个数字一定要放在括号外面不然每次运行都不一样
        while(N--){
            scanf("%d",&x);
            if(x%5==0&&x%2==0){
                A1=A1+x;
            }
            
            if(x%5==1){
                A2=A2+i*x;
                i=i*-1;
                A2_judge++;//A2有种比较特殊的情况就是所有的数字相加等于0
            }
            if(x%5==2){
                A3++;
            }
            if(x%5==3){
                A4=x+A4;
                j++;
            }
            if(x%5==4){
                if(A5<x) A5=x;
            }
        }
        
        if(A1==0) printf("N "); else printf("%d ",A1);
        if(A2_judge==0) printf("N "); else printf("%d ",A2);
        if(A3==0) printf("N "); else printf("%d ",A3);
        if(j==0) printf("N "); else printf("%.1f ",A4/j);
        if(A5==0) printf("N"); else printf("%d",A5);
        printf("\n");
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容