zoukankan      html  css  js  c++  java
  • 数字分类 (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”。

    输入例子:

    13 1 2 3 4 5 6 7 8 9 10 20 16 18

    输出例子:

    30 11 2 9.7 9

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cmath> 
    using namespace std;
    int main(void){
        int n , x , sum[6]={0} , have[6]={0} , flag=1 , count=0;
        cin >> n;
        for(int i=1;i<=n;i++){
            cin >> x;
            switch(x%5){
                case 0:
                    if(x%2 == 0){
                        have[1] = 1;
                        sum[1] += x;
                    }
                    break;
                case 1:
                    have[2] = 1;
                    if(flag){
                        sum[2] += x;
                        flag = !flag;
                    }
                    else {
                        sum[2] -= x;
                        flag = !flag;
                    }
                    break;
                case 2:
                    have[3] = 1;
                    sum[3]++;
                    break;
                case 3:
                    have[4] = 1;
                    sum[4] += x;
                    count++;
                    break;
                case 4:
                    have[5] = 1;
                    sum[5] = max(sum[5],x); 
                    break;
            }        
        }
        if(have[1]) printf("%d ",sum[1]); else printf("N ");
        if(have[2]) printf("%d ",sum[2]); else printf("N ");
        if(have[3]) printf("%d ",sum[3]); else printf("N ");
        if(have[4]) printf("%.1lf ",(sum[4]*1.0)/count); else printf("N ");
        if(have[5]) printf("%d",sum[5]); else printf("N"); 
        return 0;
    }

    注意:使用一个have[]数组记录是否有数字存在,简单清晰。

  • 相关阅读:
    spring aop实现过程之三Spring AOP中Aspect编织的实现
    spring aop实现过程之一代理对象的生成
    数据库常用面试题(SQL Server) (转载)
    回溯法解八后问题
    masmplus增加调试工具
    c++ new关键字 详解
    EMU8086 编译器使用简介
    汇编操作显存
    回溯法简介
    汇编链接时 错误:unresolved external symbol _WinMainCRTStartup
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8505321.html
Copyright © 2011-2022 走看看