PAT-B] 1012. 数字分类 [模拟]

链接:1012. 数字分类 (20)

题意

给一个N表示接下来要操作的数字的个数
然后给出一串数字,按 A1 , A2 , A3 , A4 , A5 的要求分别算就好了。

分析

可以输入一个数计算一个,然后分别存到 A1 , A2 , A3 , A4 , A5 中去。

要注意如果 Ai 中存在没被用到的,则需做好记录。

代码

#include <cstdio>

int f[6]={ 0, 0, 0, 0, 0, 0 };      // 表示 Ai 内是否有数
double A[6]={ 0, 0, 0, 0, 0, 0 };   // 存放 Ai 结果

int main()
{

    int N, n, t = 1, j = 0;
    // t 为 A2 中数字前系数,+1 -1 +1 -1 ……
    // j 为 A3 中数字的个数,方便求平均数
    scanf( "%d", &N );
    for( int i = 0; i < N; i++ ){
        scanf( "%d", &n );
        int y = n % 5;
        if( n % 10 == 0 ){  // A1
            A[1] += n;
            f[1] = 1;
        }
        else if( y == 1 ){  // A2
            A[2] += t * n;
            t = -t;
            f[2] = 1;
        }
        else if( y == 2 ){  // A3
            A[3]++;
            f[3] = 1;
        }
        else if( y == 3 ){  // A4
            A[4] += n;
            j++;
            f[4] = 1;
        }
        else if( y == 4 ){  // A5
            if( n > A[5] ){
                A[5] = n;
            }
            f[5] = 1;
        }
    }
    if( f[1] )  printf( "%.0lf", A[1] );
    else    printf( "N" );

    if( f[2] )  printf( " %.0lf", A[2] );
    else    printf( " N" );

    if( f[3] )  printf( " %.0lf", A[3] );
    else    printf( " N" );

    if( j ) A[4] = A[4] / j;

    if( f[4] )  printf( " %.1lf", A[4] );
    else    printf( " N" );

    if( f[5] )  printf( " %.0lf\n", A[5] );
    else    printf( " N\n" );

    return 0;
}

小结

注意一下细节部分就没有问题啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值