链接:1012. 数字分类 (20)
题意
给一个N
表示接下来要操作的数字的个数
然后给出一串数字,按 $A_1$, $A_2$, $A_3$, $A_4$, $A_5$ 的要求分别算就好了。
分析
可以输入一个数计算一个,然后分别存到 $A_1$, $A_2$, $A_3$, $A_4$, $A_5$ 中去。
要注意如果 $A_i$ 中存在没被用到的,则需做好记录。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #include <cstdio> int f[6]={ 0, 0, 0, 0, 0, 0 }; double A[6]={ 0, 0, 0, 0, 0, 0 }; int main() { int N, n, t = 1, j = 0; scanf( "%d", &N ); for( int i = 0; i < N; i++ ){ scanf( "%d", &n ); int y = n % 5; if( n % 10 == 0 ){ A[1] += n; f[1] = 1; } else if( y == 1 ){ A[2] += t * n; t = -t; f[2] = 1; } else if( y == 2 ){ A[3]++; f[3] = 1; } else if( y == 3 ){ A[4] += n; j++; f[4] = 1; } else if( y == 4 ){ 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; }
|
小结
注意一下细节部分就没有问题啦。