• 1012 数字分类


    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
    
     

        题目较简单,注意A2的分类情况即可,看代码

     1 #include<iostream>
     2 #include<iomanip>
     3 #include<vector>
     4 using namespace std;
     5 int main () 
     6 {
     7    int N,A1=0,A2=0,A3=0,A5=0;
     8    double A4=0.0;
     9    cin>>N;
    10    vector<int> v(N);
    11    for(int i=0;i<N;i++)
    12        cin>>v[i];
    13    int countA2=0,countA4=0,k=-1;
    14    for(int i=0;i<N;i++)
    15    {
    16        if(v[i]%5==0&&v[i]%2==0)
    17            A1+=v[i];
    18        else if(v[i]%5==1)
    19        {
    20            k*=-1;
    21            A2+=k*v[i];
    22            countA2++;
    23        }
    24        else if(v[i]%5==2)
    25            A3++;
    26        else if(v[i]%5==3)
    27        {
    28            A4+=v[i];
    29            countA4++;
    30        }
    31        else if(v[i]%5==4&&v[i]>A5)
    32            A5=v[i];
    33    }
    34    A4=A4/countA4;  //计算A4
    35    if(A1>0)
    36        cout<<A1<<" ";
    37    else
    38        cout<<"N ";
    39    if(countA2>0)
    40        cout<<A2<<" ";
    41    else
    42        cout<<"N ";
    43    if(A3>0)
    44        cout<<A3<<" ";
    45    else
    46        cout<<"N ";
    47    if(A4>0.0)
    48        cout<<setiosflags(ios::fixed)<<setprecision(1)<<A4<<" ";
    49    else
    50        cout<<"N ";
    51    if(A5>0)
    52        cout<<A5;
    53    else
    54        cout<<"N";
    55    return 0;
    56 }

    ac了

  • 相关阅读:
    树套树+【UVALive】6709 Mosaic 二维线段树
    汇编实验1. 计算1+2+3+…+10,将结果显示在屏幕上。4
    Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2) D. Destruction of a Tree
    HDU 4417 Super Mario主席树
    spoj+B
    2018-2019赛季多校联合新生训练赛第五场(2018/12/14)补题题解
    迷宫问题 POJ
    浅谈二分搜索与二分查找
    Moving Tables POJ
    Humidex POJ
  • 原文地址:https://www.cnblogs.com/buanxu/p/12812676.html
Copyright © 2020-2023  润新知