[编程题]数字分类 (20)

来源:互联网 发布:火山中文移动编程官网 编辑:程序博客网 时间:2024/06/08 17:58
链接:https://www.nowcoder.com/questionTerminal/473c219f9e4d4ab2851ed388895a9c86
来源:牛客网

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

输出

30 11 2 9.7 9


链接:https://www.nowcoder.com/questionTerminal/473c219f9e4d4ab2851ed388895a9c86
来源:牛客网

我的代码

#include<stdio.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
    {
    int N;
    cin>>N;
    int arr[N];
    int A1=0;
    int A2=0,count=0;
    int A3=0;
    int sum=0,n=0;float A4=0;
    int A5=0;
    int a1=0,a2=0,a3=0,a4=0,a5=0;
    
    int i=0;
    while(i<N && cin>>arr[i])
        {
        
        if(arr[i]%10==0)
            {
            A1=A1+arr[i];
           a1++;
        }
        else if(arr[i]%5==1)
            {
            a2++;
            if(count%2==0)
                {
                A2=A2+arr[i];
                count++;
            }
            else if(count%2==1)
                {
                A2=A2-arr[i];
                count++;
            }
            
        }
        else if(arr[i]%5==2)
            A3++;
        else if(arr[i]%5==3)
             {
            a4++;
             n++;
             A4+=arr[i];
         }
        else if(arr[i]%5==4){
            a5++;
            if(arr[i]>A5)
                A5=arr[i];
        }
        i++;
    }
    
    (a1>0)?(cout<<A1<<" "):(cout<<"N ");
    (a2>0)?(cout<<A2<<" "):(cout<<"N ");
    (A3>0)?(cout<<A3<<" "):(cout<<"N ");
    (a4>0)?(cout<<fixed<<setprecision(1)<<A4/n<<" "):(cout<<"N ");
    (a5>0)?(cout<<A5<<endl):(cout<<"N"<<endl);
    return 0;
}

输入值得参考的代码

链接:https://www.nowcoder.com/questionTerminal/473c219f9e4d4ab2851ed388895a9c86
来源:牛客网

#include <iostream>
#include <iomanip>
usingnamespace std;
 
int main()
{
    intc1=0,c2=0,c3=0,c4Num=0,c5=0;
    floatc4=0;
    intn,x,i=1;
    cin>>n;
    while(n--)
    {
        cin>>x;
        switch(x%5)
        {
            case0:if(x%2==0) c1+=x;break;
            case1:c2+=(i*x);i=-i;break;
            case2:c3++;break;
            case3:c4+=x;c4Num++;break;
            case4:if(x>c5)c5=x;break;
        }
    }
    (c1>0)?(cout<<c1<<" "):(cout<<"N ");
    (c2!=0)?(cout<<c2<<" "):(cout<<"N ");
    (c3>0)?(cout<<c3<<" "):(cout<<"N ");
    (c4>0)?(cout<<fixed<<setprecision(1)<<c4/c4Num<<" "):(cout<<"N ");
    (c5>0)?(cout<<c5):(cout<<"N");
    return0;
}

原创粉丝点击