1012. 数字分类

来源:互联网 发布:小学奥数 知乎 编辑:程序博客网 时间:2024/06/02 15:06

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

    #include <stdio.h>#include <stdlib.h>#include <string.h>int main (){    int num,i,temp,count0=0,count1=0,count2=0,count3=0,count4=0;    scanf("%d",&num);    int * mode0=new int[num];    int * mode1=new int[num];    int * mode2=new int[num];    int * mode3=new int[num];    int * mode4=new int[num];    for(i=0;i<num;i++)    {                      scanf("%d",&temp);//the current num                      switch (temp%5)//the mode num                      {                             case 0:mode0[count0++]=temp;break;                             case 1:mode1[count1++]=temp;break;                             case 2:mode2[count2++]=temp;break;                             case 3:mode3[count3++]=temp;break;                             case 4:mode4[count4++]=temp;break;                             }                      }    int result0=0,result1=0,result2=0,result4=0;    float result3=0.0f;//    bool flag0,flag1,flag2,flag3,flag4;    //A1//////////////////////////////    if(count0==0) printf("N ");//no num in mode0    else     {         for(i=0;i<count0;i++)             if(mode0[i]%2==0) result0=result0+mode0[i];         if(result0==0) printf("N ");         else printf("%d ",result0);         }    //A2/////////////////////////////////    if(count1==0) printf("N ");    else    {        for(i=0;i<count1;i++)        {            if(i%2==0) result1=result1+mode1[i];            else result1=result1-mode1[i];            }        printf("%d ",result1);        }    //A3///////////////////////////////////    if(count2==0) printf("N ");    else    printf("%d ",count2);    //A4///////////////////////////////////    if(count3==0) printf("N ");    else    {        for(i=0;i<count3;i++) result3=result3+mode3[i];        result3=result3/count3;        printf("%.1f ",result3);        }    //A5//////////////////////////////////////    if(count4==0) printf("N");    else    {        result4=mode4[0];        for(i=1;i<count4;i++)            if(mode4[i]>result4) result4=mode4[i];        printf("%d\n",result4);        }        system("pause");   return 0;    }

  • 0 0
    原创粉丝点击