PTA_乙级_1012

PTA_乙级_1012_第1张图片

#include 
using namespace std;

int main(){
    int n;
    cin >> n;

    int a[n];
    for(int i = 0; i < n; i++)
        cin >> a[i];

    // A1 = 能被 5 整除的数字中所有偶数的和
    int sumA1 = 0;
    for(int i = 0; i < n; i++){
        if(a[i] % 5 == 0 && a[i] % 2 == 0)
            sumA1 += a[i];
    }
    if(sumA1==0)
        cout<<"N ";
    else
        cout<<sumA1<<" ";

    // A2 将被 5 除后余 1 的数字按给出顺序进行交错求和
    int sumA2 = 0;
    int t_A2=0;
    int a2[n];
    for(int i = 0; i < n; i++){
        if(a[i] % 5 == 1){
            a2[t_A2++]=a[i];
        }
    }
    for(int i=0;i<t_A2;i++){
        if(i % 2 == 0)
            sumA2 += a2[i];
        else
            sumA2 -= a2[i];
    }
    if(sumA2==0)
        cout<<"N ";
    else
        cout<<sumA2<<" ";

    // A3 =5 除后余 2 的数字的个数
    int countA3 = 0;
    for(int i = 0; i < n; i++){
        if(a[i] % 5 == 2)
            countA3++;
    }
    if(countA3==0)
        cout<<"N ";
    else
        cout<<countA3<<" ";

    // A4 =5 除后余 3 的数字的平均数,精确到小数点后 1int sumA4 = 0;
    int t = 0;
    for(int i = 0; i < n; i++){
        if(a[i] % 5 == 3){
            sumA4 += a[i];
            t++;
        }
    }
    double avgA4 = t > 0 ? static_cast<double>(sumA4) / t : 0;
    if(sumA4==0)
        cout<<"N ";
    else
        printf("%.1f ",avgA4);

    // A5 =5 除后余 4 的数字中最大数字
    int maxA5 = 0;
    for(int i = 0; i < n; i++){
        if(a[i] % 5 == 4 && a[i] > maxA5)
            maxA5 = a[i];
    }
    if(maxA5==0)
        cout<<"N";
    else
        cout<<maxA5;


    return 0;
}

PTA_乙级_1012_第2张图片
最后一个测试点没通过

你可能感兴趣的:(PTA乙级,算法)