zoukankan      html  css  js  c++  java
  • PAT Basic 1012 数字分类 (20 分)

    给定一系列正整数,请按要求对数字进行分类,并输出以下 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


    #include <iostream>
    #include <vector>
    using namespace std;
    int main()
    {
        int n,temp,res1=0,res2=0,res3=0,res5=-1;double res4=0;
        cin>>n;
        vector<int> a1,a2,a3,a4,a5;
        for(int i=0;i<n;i++){
            cin>>temp;
            switch(temp%5){
                case 0: if(temp%10==0) a1.push_back(temp);break;
                case 1: a2.push_back(temp);break;
                case 2: a3.push_back(temp);break;
                case 3: a4.push_back(temp);break;
                case 4: a5.push_back(temp);break;
            }
        }
        //求和
        for(int i=0;i<a1.size();i++){
            res1+=a1[i];
        }
        //交错求和
        bool isPositive=true;//正负交错的key
        for(int i=0;i<a2.size();i++){
            if(isPositive) res2+=a2[i];
            else res2-=a2[i];
            isPositive=!isPositive;
        }
        //计数
        for(int i=0;i<a3.size();i++){
            res3++;
        }
        //平均数
        for(int i=0;i<a4.size();i++){
            res4+=a4[i];
        }
        res4=res4/a4.size();
        //最大数字
        for(int i=0;i<a5.size();i++){
            if(a5[i]>res5) res5=a5[i];
        }
        //输出,这边使用空判断更准确,否则会有一个失误
        if(a1.size()==0) cout<<"N ";else cout<<res1<<" ";
        if(a2.size()==0) cout<<"N ";else cout<<res2<<" ";
        if(a3.size()==0) cout<<"N ";else cout<<res3<<" ";
        if(a4.size()==0) cout<<"N ";else printf("%.1f ",res4);
        if(a5.size()==0) cout<<"N";else cout<<res5;
        system("pause");
        return 0;
    }
  • 相关阅读:
    自定义Collection类
    基本排序算法(冒泡排序,选择排序,插入排序)
    泛型
    XSD的学习
    SSH整合配置
    一个可以随时插入的json的简单实现
    将Properties文件的键值对调换位置重新生成一个文件
    JAVA MD5加密
    框架中退出登录
    java 生成 xml
  • 原文地址:https://www.cnblogs.com/littlepage/p/11273773.html
Copyright © 2011-2022 走看看