zoukankan      html  css  js  c++  java
  • 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

    思路:看起来挺复杂,但是可以把问题模块化,写五个函数解决,让代码显得简洁明了......

      1 #include<stdio.h>
      2 #include<stdlib.h>
      3 #include<string.h>
      4 #include<math.h>
      5 int find1(int num[],int N);
      6 int find2(int num[],int N);
      7 int find3(int num[],int N);
      8 int find4(int num[],int N);
      9 int find5(int num[],int N);
     10 int main()
     11 {
     12     int N;
     13     scanf("%d",&N);
     14     int num[N];
     15     for(int i=0;i<N;i++)
     16     scanf("%d",&num[i]);
     17     find1(num,N);
     18     find2(num,N);
     19     find3(num,N);
     20     find4(num,N);
     21     find5(num,N);
     22     return 0;
     23 }
     24 int find1(int num[],int N)
     25 {
     26     int sum=0;
     27     for(int i=0;i<N;i++)
     28     {
     29         if(num[i]%5==0&&num[i]%2==0)
     30             sum=sum+num[i];
     31     }
     32     if(sum==0)
     33         printf("N ");
     34         else
     35         printf("%d ",sum);
     36 }
     37 int find2(int num[],int N)
     38 {
     39     int t=0,T=0;
     40     int sum=0;
     41     for(int i=0;i<N;i++)
     42     {
     43         if(num[i]%5==1)
     44         {
     45             sum=sum+num[i]*pow(-1,t);
     46             t++;
     47         }
     48         else 
     49         T++;
     50     }
     51         if(T==N)
     52         printf("N ");
     53         else
     54         printf("%d ",sum);
     55 }
     56 int find3(int num[],int N)
     57 {
     58     int t=0;
     59     for(int i=0;i<N;i++)
     60     {
     61         if(num[i]%5==2)
     62         t++;
     63     }
     64     if(t==0)
     65     printf("N ");
     66     else
     67     printf("%d ",t);
     68 }
     69 int find4(int num[],int N)
     70 {
     71     int t=0;
     72     float average,sum=0;
     73     for(int i=0;i<N;i++)
     74     {
     75         if(num[i]%5==3)
     76         {
     77             sum=sum+num[i];
     78             t++;
     79         }
     80     }
     81     if(t==0)
     82     printf("N ");
     83     else
     84     {
     85         average=sum/t;
     86         printf("%.1f ",average);
     87     }
     88 }
     89 int find5(int num[],int N)
     90 {
     91     int max=-1,t=0;
     92     for(int i=0;i<N;i++)
     93     {
     94         if(num[i]%5==4)
     95         {
     96             if(num[i]>=max)
     97             max=num[i];
     98             t++;
     99         }
    100     }
    101     if(t==0)
    102     printf("N");
    103     else
    104     printf("%d",max);
    105 }
     
    大佬见笑,,
  • 相关阅读:
    检测一个对象方法是否存在
    非堵塞 延迟脚本 高性能
    移动开发 相关 备忘
    元素透明 渐变函数
    cookie
    media query 单位
    前端入门可参考《如何教会非计算机专业的女友写代码》
    JQ判断复选框是否选中
    聊天记录
    JS获取文本值
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10204737.html
Copyright © 2011-2022 走看看