zoukankan      html  css  js  c++  java
  • 【算法笔记】B1012 数字分类

    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可以小于0,注意A4_count不能为0 ,注意第一个数是样例个数。

    CODE:

    #include<iostream>
    #include<math.h>
    using namespace std;
    
    int main(){
        int a;
        int A1=0,A2=0,A3=0,A4=0,A5=0;
        int N;
        int A2_count=0,A4_count=0;
        cin>>N;
        while(N--){
            cin>>a;
            if(a%10==0) A1+=a;
            else if(a%5==1) {A2+=pow(-1.0,A2_count++)*a;}
            else if(a%5==2) A3++;
            else if(a%5==3) 
            {
                A4 +=a;
                A4_count =A4_count+1;
            }
            else if(a%5==4) if(A5<a){A5 = a;}
        }
        
          if (A1==0) cout<<"N ";
          else cout<<A1<<" ";
    
          if (A2_count==0) cout<<"N ";
          else cout<<A2<<" ";
      
          if (A3==0) cout<<"N ";
          else cout<<A3<<" ";
      
          if (A4_count==0) cout<<"N ";
          else  printf("%.1f ",1.0*A4/A4_count);
      
          if (A5==0) cout<<"N";
          else cout<<A5;
        return 0;
    }
  • 相关阅读:
    一些信息熵的含义
    scikit-learn包的学习资料
    DB Scan算法的分析与实现
    ps教程连接
    用PS如何把图片调出时尚杂志色
    Linux FIFO读写时堵塞与非堵塞的效果
    yuyv转yuv420p代码及验证代码
    YUV格式介绍
    too many include files depth = 1024错误原因
    开发用小工具
  • 原文地址:https://www.cnblogs.com/chunlinn/p/10500419.html
Copyright © 2011-2022 走看看