zoukankan      html  css  js  c++  java
  • PAT-乙级-1012 数字分类

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


    分析:
      按照要求分别统计出各类情况即可
      PS:注意第五种情况数字不是有序的,需要判断是否为最大数,在此坑了很久...


     1 //c++
     2 #include<iostream>
     3 #include<iomanip>
     4 using namespace std;
     5 
     6 int main(){
     7   int res[5]={0},cnt[5]={0};
     8   int n,x,max=0,f=1;
     9   cin>>n;
    10   while(n--){
    11     cin>>x;
    12     switch(x%5){
    13       case 0:if(x%2==0){res[0]+=x;cnt[0]++;}break;
    14       case 1:res[1]+=(f*x);cnt[1]++;f=-f;break;
    15       case 2:res[2]++;cnt[2]++;break;
    16       case 3:res[3]+=x;cnt[3]++;break;
    17       case 4:if(x>max){res[4]=x;max=x;cnt[4]++;}break;
    18     }
    19   }
    20   for(int i=0;i<5;i++){
    21     if(i)
    22       cout<<' ';
    23     if(cnt[i]==0)
    24       cout<<'N';
    25     else
    26       if(i==3)
    27         cout<<fixed<<setprecision(1)<<1.0*res[3]/cnt[3];
    28       else
    29         cout<<res[i];
    30   }
    31   return 0;
    32 }
     
  • 相关阅读:
    flex布局中transform出错
    RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1
    解决windows下FileZilla server中文乱码问题
    IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
    C# 速编神器LinqPad(新版6.5)
    一个MySql Sql 优化技巧分享
    IIS反向代理/Rewrite/https卸载配置
    zerotier 远程办公方案
    一次Mysql连接池卡死导致服务无响应问题分析(.Net Mysql.Data 6.9.9)
    ExpressCache
  • 原文地址:https://www.cnblogs.com/tenjl-exv/p/9784908.html
Copyright © 2011-2022 走看看