zoukankan      html  css  js  c++  java
  • 牛客PAT乙级(Basic Level)真题

    数字分类 (20)

    代码

    运行结果


    数字分类 (20)

    时间限制:1000ms 内存限制:32768KB 代码长度限制:100KB 判断程序:Standard

    题目描述:

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


    代码:

    //牛客PAT 1002 数字分类
    #include <stdio.h>
    int main(int argc, char const *argv[])
    {
        int N, judge = 0, i = 0, j = 0, k = 0;
        int A1 = 0, A2 = 0, A3 = 0, A5 = 0;
        int count1 = 0, count2 =0, count3 = 0, count4 = 0, count5 = 0;
        float A4;
        int a4 = 0;
    
        scanf("%d", &N);
        int num[N]={0}, a2[N]={0};
        
        for(int i = 0; i < N; i++)
        {
            scanf("%d", &num[i]);
        }
        
        for(int i = 0; i < N; i++)
        {
            judge = num[i] % 5;
            switch (judge)
            {
                case 0:
                    {
                        if ((num[i]%2)==0)
                        {
                            A1 = A1 + num[i];       //计算A1
                            count1++;
                        }
                        break;
                    }
                case 1:
                    {
                        a2[j] = num[i];
                        j++;
                        count2++;
                        break;
                    }
                case 2:
                    {
                        A3++;       //计算A3
                        count3++;
                        break;
                    }
                case 3:
                    {
                        k++;
                        a4 = a4 + num[i];
                        count4++;
                        break;
                    }
                case 4:
                    {
                        if(num[i] > A5)
                        A5 = num[i];        //计算A5
                        count5++;
                        break;
                    }
                default:
                    break;
            }
        }
        
        i = 0;
        while(a2[i])        //计算A2
        {
            if((i%2)==0)
                A2 = A2 + a2[i];
            else
                A2 = A2 - a2[i];
            i++;
        }
    
        A4 = (float)a4 / k;     //计算A4
    
        (count1)?(printf("%d ", A1)):(printf("N "));
        (count2)?(printf("%d ", A2)):(printf("N "));
        (count3)?(printf("%d ", A3)):(printf("N "));
        (count4)?(printf("%.1f ", A4)):(printf("N "));
        (count5)?(printf("%d", A5)):(printf("N"));
        return 0;
    }

    运行结果:

  • 相关阅读:
    使用 PIVOT 和 UNPIVOT 行转列 列转行 报表统计 函数
    HAVING 子句 (SQL Server Compact)
    浅谈C#抽象类和C#接口
    大型高并发高负载网站的系统架构
    瞬时响应:网站的高性能架构
    Python之Subprocess模块
    Python之JSON序列
    Saltstack生产案例之系统初始化
    Saltstack配置管理
    CentOS6.5安装配置PPTP
  • 原文地址:https://www.cnblogs.com/ME-WE/p/12433605.html
Copyright © 2011-2022 走看看