[C++]PAT乙級1012.デジタル分類(20/20)

2458 ワード

/*
1012.      (20)

        ,           ,     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.      
            1.1      ,               
            1.2       ,       
        2.        .

      :
               ,  : A2  :     A2   ,       0 ,    。
*/
#include 

using namespace std;

int main()
{
    int size;
    int tmp, mod, A2_count = 0,A2_prev = 1, A4_count = 0;//tmp:          ;A2_prev:   A2        ,   +,1:+,-1:-;A3_count: A3        
    int A1 = 0, A2 = 0, A3 = 0, A5 = -1;//A5:   5   4        
    double A4 = 0;//A4:      ,      
    scanf("%d", &size);
    while(size--){
        scanf("%d", &tmp);
        mod = tmp % 5;
        if(mod == 0){
            if(tmp % 2 == 0){
                A1 += tmp;//A1:  5            
            }
        }else if(mod == 1){//A2:  5   1              ,   n1-n2+n3-n4...;
            A2 += A2_prev * tmp;
            A2_prev *= -1;
            A2_count++;//  : A2    :     A2   ,       0 ,    。
        } else if(mod == 2) {//A3: 5   2      ;
            A3++;
        } else if(mod == 3){//A4: 5   3       ,       1 ;
            A4 += tmp;//    
            A4_count++;//  
        } else {//A5: 5   4        。
            A5 = tmp > A5 ? tmp : A5;
        }
    }

    if(A1 != 0){
        printf("%d ", A1);
    } else {
        printf("%s ", "N");
    }
    if(A2_count != 0){
        printf("%d ", A2);
    } else {
        printf("%s ", "N");
    }
    if(A3 != 0){
        printf("%d ", A3);
    } else {
        printf("%s ", "N");
    }
    if(A4 != 0){
        printf("%.1f ", A4 / A4_count);
    } else {
        printf("%s ", "N");
    }
    if(A5 != -1){
        printf("%d", A5);
    } else {
        printf("%s", "N");
    }
//    printf("%d %d %d %.1f %d", A1, A2, A3, A4 / A4_count, A5);//test

    return 0;
}

  
転載先:https://www.cnblogs.com/johnnyzen/p/8948379.html