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

    思路

    此题虽简单,却有小坑,应仔细。

    C++代码样例

    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    
    #define MAX 0x7fffffff
    
    using namespace std;
    
    int main(void)
    {
        int *value = NULL;
        int n = 0;
        int i = 0;
        int A1_result = 0, A2_result = MAX, A3_result = 0, A4_result = 0, A4_value = 0, A5_result = 0;
        int A2_value = 0, A2_flag = 1;
        int A5_max = -9999;
        scanf("%d", &n);
        value = (int *)malloc(n * sizeof(int));
        for (i = 0; i < n; i++)
        {
            scanf("%d", (value + i));
        }
        for(i = 0; i < n; i++)
        {
            if(*(value + i) % 5 == 0 && *(value + i) % 2 == 0)
            {
                A1_result += (*(value + i));
                continue;
            }
            if(*(value + i) % 5 == 1)
            {
                A2_value += A2_flag * (*(value + i));
                A2_flag *= -1;
                A2_result = A2_value;
                continue;
            }
            if(*(value + i) % 5 == 2)
            {
                A3_result++;
                continue;
            }
    
            if(*(value + i) % 5 == 3)
            {
                A4_value += (*(value + i));
                A4_result++;
                continue;
            }
            if(*(value + i) % 5 == 4)
            {
                if(*(value + i) > A5_max)
                {
                    A5_max = *(value + i);
                }
                A5_result = A5_max;
                continue;
            }
        }
        if(A1_result)
        {
            printf("%d ", A1_result);
        }
        else
        {
            printf("N ");
        }
        if(A2_result != MAX)
        {
            printf("%d ", A2_result);
        }
        else
        {
            printf("N ");
        }
        if(A3_result)
        {
            printf("%d ", A3_result);
        }
        else
        {
            printf("N ");
        }
        if(A4_result)
        {
            printf("%.1f ", A4_value / (float)A4_result);
        }
        else
        {
            printf("N ");
        }
        if(A5_result)
        {
            printf("%d", A5_result);
        }
        else
        {
            printf("N");
        }
        return 0;
    }
  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/csnd/p/12897030.html
Copyright © 2011-2022 走看看