• B1012数字分类


    给定一系列正整数,请按要求对数字进行分类,并输出以下 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 <iostream>
     2 using namespace std;
     3 int main() {
     4     int n,sign=1;
     5     int a[1001];
     6     int sum1=0, sum2=0,sum3=0, cnt1=0,cnt2=0, maxn=0;
     7     double num;
     8     int flag[5] = {0};
     9     cin >> n;
    10     for (int i = 0; i < n; i++) {
    11         cin >> a[i];
    12         switch (a[i] % 5)
    13         {
    14         case 0:
    15             if (a[i] % 2 == 0)
    16             {
    17                 sum1 += a[i];
    18                 flag[0] = 1;
    19             }
    20             break;
    21         case 1:
    22             sum2 += sign*a[i];
    23             sign *= -1;
    24             flag[1] = 1;
    25             break;
    26         case 2:
    27             cnt1++;
    28             flag[2] = 1;
    29             break;
    30         case 3:
    31             sum3 += a[i];
    32             cnt2++;
    33             flag[3] = 1;
    34             break;
    35         case 4:
    36             if (a[i] > maxn)
    37                 maxn = a[i];
    38             flag[4] = 1;
    39             break;
    40         default:
    41             break;
    42         }
    43     }
    44     if (flag[0] ==1)
    45         printf("%d ", sum1);
    46     else printf("N ");
    47     if(flag[1]==1)
    48         printf("%d ", sum2);
    49     else printf("N ");
    50     if (flag[2]==1)
    51         printf("%d ", cnt1);
    52     else printf("N ");
    53     if (flag[3]==1) {
    54         num= (double)sum3 / cnt2;//类型转换才能得到double类型的商
    55         printf("%.1f ", num);
    56     }
    57     else printf("N ");
    58     if(flag[4]==1)
    59         printf("%d", maxn);
    60     else printf("N");
    61     return 0;
    62 }
     
    作者:PennyXia
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    IDEA中用好Lombok,撸码效率至少提升5倍
    在 IDEA 中使用 Debug,真是太厉害了!
    彻底理解cookie,session,token
    优秀的程序员一定要多写博客!
    IntelliJ IDEA 从入门到上瘾教程,2019图文版!
    注解配置
    过滤器(登录认证)
    过滤器
    Session监听器
    request监听器
  • 原文地址:https://www.cnblogs.com/PennyXia/p/12284573.html
Copyright © 2020-2023  润新知