• 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
     1 #include "stdio.h"
     2 #define size 1000
     3 
     4 int main(int argc, char const *argv[])
     5 {
     6     int n, a[size];
     7     while(scanf("%d", &n) != EOF)
     8     {
     9         int i, b1flag = 1;
    10         int b[5] = {0};
    11         float b3 = 0;
    12         int b3Count = 0;
    13         for (i = 0; i < n; ++i)
    14         {
    15             scanf("%d", &a[i]);
    16         }
    17         for (i = 0; i < n; ++i)
    18         {
    19             if(a[i] % 5 == 0 && a[2] % 2 == 0)
    20             {
    21                 b[0] += a[i];
    22             }
    23                 
    24             if(a[i] % 5 == 1)
    25             {
    26                 b[1] += a[i] * b1flag;
    27                 b1flag = 0 - b1flag;
    28             }
    29             if(a[i] % 5 == 2)
    30                 b[2] ++;
    31             if(a[i] % 5 == 3)
    32             {
    33                 b[3] += a[i];
    34                 b3Count++;
    35             }
    36             if(a[i] % 5 == 4)
    37             {
    38                 if(b[4] < a[i])
    39                     b[4] = a[i];
    40             }
    41         }
    42         if(b3Count) b3 = (double)b[3] / b3Count;
    43         // 输出
    44         if(b[0] == 0)
    45             printf("N");
    46         else
    47             printf("%d", b[0]);
    48 
    49         for (i = 1; i < 5; ++i)
    50         {
    51             if(b[i] == 0)
    52                 printf(" N");
    53             else
    54             {
    55                 if(i == 3)
    56                     printf(" %.1f", b3);
    57                 else
    58                     printf(" %d", b[i]);
    59             }        
    60         }
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    python 中实现按照指定步长拆分字符串
    c语言中单目运算符 !返回值为0或者1
    c语言中字符常量 和 字符串常量
    python 中 在文件中创建字符串nN
    python 中 关键字 continue 和 pass的区别
    关于FD_CLOEXEC标志
    额,没想到,背包问题解题也有套路。。。
    动画 | 什么是红黑树?
    牛逼了,第一次知道 GitHub 上还有这么多好玩的项目...
    动画 | 什么是链表?
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/6495157.html
Copyright © 2020-2023  润新知