PAT乙级:1012 数字分类 (20 分)(Java)

偏执的太偏执、 2022-10-16 06:23 246阅读 0赞

PAT乙级:1012 数字分类 (20 分)(Java)

微信公众号请搜索:【Codeplus】

作者 CHEN, Yue
单位 浙江大学
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

题目描述:
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
A1 = 能被 5 整除的数字中所有偶数的和;
A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1 −n2 +n3 −n4 ⋯;
A3 = 被 5 除后余 2 的数字的个数;
A4 = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
A5 = 被 5 除后余 4 的数字中最大数字。

在这里插入图片描述

题解思路:
使用取模%运算,if-else语句就可分别执行不同情况的语句,后面的判定如果某一类数字不存在,则在相应的位置输出N,依次判定循环结束得到的数是否满足条件,如果满足输出这个数加空格,如果不满足则输出N加空格(最后一个数的输出不需要空格)

提交代码:

  1. import java.util.Scanner;
  2. /**
  3. * 1012 数字分类 (20 分)
  4. *
  5. * @author LiFeilin
  6. * @date 2021/5/27 11:01
  7. */
  8. public class Test12 {
  9. public static void main(String[] args) {
  10. Scanner scanner = new Scanner(System.in);
  11. int number = scanner.nextInt();
  12. int[] array = new int[number];
  13. int A1 = 0, A2 = 0, A3 = 0, A5 = 0;
  14. int sum = 0, count = 0;
  15. int flag = 1;
  16. boolean b = false;
  17. for (int j = 0; j < number; j++) {
  18. array[j] = scanner.nextInt();
  19. if (array[j] % 5 == 0) {
  20. //能被 5 整除的数字中所有偶数的和
  21. if (array[j] % 2 == 0)
  22. A1 += array[j];
  23. } else if (array[j] % 5 == 1) {
  24. //将被 5 除后余 1 的数字按给出顺序进行交错求和
  25. A2 += (array[j] * flag);
  26. flag = -flag;
  27. b = true;
  28. } else if (array[j] % 5 == 2) {
  29. //被 5 除后余 2 的数字的个数
  30. A3++;
  31. } else if (array[j] % 5 == 3) {
  32. //被 5 除后余 3 的数字的平均数,精确到小数点后 1 位
  33. sum += array[j];
  34. count++;
  35. } else if (array[j] % 5 == 4) {
  36. //被 5 除后余 4 的数字中最大数字
  37. // A5 = array[j];
  38. if (array[j] > A5) {
  39. A5 = array[j];
  40. }
  41. }
  42. }
  43. if (A1 != 0) {
  44. System.out.print(A1 + " ");
  45. } else System.out.print("N ");
  46. if (b) {
  47. System.out.print(A2 + " ");
  48. } else System.out.print("N ");
  49. if (A3 != 0) {
  50. System.out.print(A3 + " ");
  51. } else System.out.print("N ");
  52. if (count != 0) {
  53. System.out.printf("%.1f", (1.0 * sum / count));
  54. System.out.print(" ");
  55. } else System.out.print("N ");
  56. if (A5 != 0) {
  57. System.out.print(A5);
  58. } else System.out.print("N");
  59. }
  60. }

提交结果:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PAT 1012 数字分类

    给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,

    相关 1012. 数字分类 (20)

    给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n

    相关 PAT乙级1012

    1012 数字分类(20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和; A2 = 将