PAT 乙级 1012. 数字分类 (20)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuan12xing4/article/details/75050895

1012. 数字分类 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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


  •  使用高级编辑器

     1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include<iostream>
    using namespace std;
     
     
    int main()
    {
        int a[5]={0};
    int a1=0,a2=0,a3=0,a4=0,a5=0;
        int N, num;
        scanf("%d", &N);
        for (int i = 0; i < N; i++)
        {
            scanf("%d", &num);
            if (num % 5 == 0 && num % 2 == 0)//能被2,5整除的数
            {
                a[0] += num;
               a1++;
            }
            else if (num % 5 == 1)//除以5余1
            {
                if (a2 % 2 == 0)//偶数项+
                    a[1] += num;
                else
                    a[1] -= num;//奇数项-,,类似交叉级数
                a2++;
            }
            else if (num % 5 == 2)
            {
                a3++;
                a[2] = a3;
            }
            else if (num % 5 == 3)
            {
                a[3] += num;
                a4++;
            }
            else if (num % 5 == 4)
            {
                a5++;
                if (num>a[4])
                    a[4] = num;
            }
        }
        if (a1 == 0)
            printf("N ");
        else
            printf("%d ", a[0]);
        if (a2 == 0)
            printf("N ");
        else
            printf("%d ", a[1]);
        if (a3 == 0)
            printf("N ");
        else
            printf("%d ", a[2]);
        if (a4 == 0)
            printf("N ");
        else
            printf("%.1f ", a[3] * 1.0 / a4);//乘以1.0使结果为小数
        if (a5 == 0)
            printf("N");
        else
            printf("%d", a[4]);
     
        return 0;
    }
    展开阅读全文
    博主设置当前文章不允许评论。

    没有更多推荐了,返回首页