当前位置:   article > 正文

1012 数字分类 (20分)_012 数字分类 (20分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数

012 数字分类 (20分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数

题目:

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

  • A​1​​ = 能被 5 整除的数字中所有偶数的和;
  • A​2​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n​1​​−n​2​​+n​3​​−n​4​​⋯;
  • A​3​​ = 被 5 除后余 2 的数字的个数;
  • A​4​​ = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
  • A​5​​ = 被 5 除后余 4 的数字中最大数字。

输入格式:

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式:

对给定的 N 个正整数,按题目要求计算 A​1​​~A​5​​ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

若其中某一类数字不存在,则在相应位置输出 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. #include<iostream>
  2. using namespace std;
  3. void judge(int n){
  4. if(n == 0){
  5. cout << "N";
  6. }else{
  7. cout << n;
  8. }
  9. }
  10. int main(){
  11. int n;
  12. cin >> n;
  13. int x;
  14. int sum1 = 0, sum2 = 0, sum3 = 0;
  15. int count1 = 0, count2 = 0, count3 = 0;
  16. int t = -1;
  17. int max = 0;
  18. for(int i=0;i < n;i++){
  19. cin >> x;
  20. if(x % 10 == 0){
  21. sum1+=x;
  22. }else if(x % 5 == 1){
  23. t*=-1;
  24. sum2 += x*t;
  25. count1++;
  26. }else if(x % 5 == 2){
  27. count2++;
  28. }else if(x % 5 == 3){
  29. sum3+=x;
  30. count3++;
  31. }else if(x % 5 == 4){ //必须写
  32. if(x > max){
  33. max = x;
  34. }
  35. }
  36. }
  37. judge(sum1);
  38. cout << " ";
  39. if(count1 == 0){
  40. cout << "N";
  41. }else{
  42. cout << sum2;
  43. }
  44. cout << " ";
  45. judge(count2);
  46. cout << " ";
  47. if(sum3 == 0){
  48. cout << "N";
  49. }else{
  50. printf("%.1f",sum3*1.0/count3);
  51. }
  52. cout << " ";
  53. judge(max);
  54. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/93735
推荐阅读
相关标签
  

闽ICP备14008679号