PAT——1012. 数字分类

Posted 大黄奔跑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT——1012. 数字分类相关的知识,希望对你有一定的参考价值。

给定一系列正整数,请按要求对数字进行分类,并输出以下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 package com.hone.basical;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import java.util.Scanner;
 6 
 7 /**
 8  * 原题目:https://www.patest.cn/contests/pat-b-practise/1012
 9  * 
10  * @author Xia 只可惜运行超时啊!!!!
11  */
12 
13 public class basicalLevel1012NumClassify {
14     public static void main(String[] args) {
15         int a1 = 0, h = 0;
16         List<Integer> a2 = new ArrayList<>();
17         int a3 = 0;
18         double a4 = 0, j = 0;
19         int a5 = 0, k = 0;
20         Scanner input = new Scanner(System.in);
21         String nums = input.nextLine();
22         String[] numst = nums.split(" ");
23         int n = Integer.parseInt(numst[0]);
24         int a;
25         for (int i = 0; i < n; i++) {
26             a = Integer.parseInt(numst[i + 1]);
27             if ((a % 5 == 0) && (a % 2 == 0)) {
28                 a1 += a;
29                 h++;
30             } else if (a % 5 == 1) {
31                 a2.add(a);
32             } else if (a % 5 == 2) {
33                 a3++;
34             } else if (a % 5 == 3) {
35                 a4 += a;
36                 j++;
37             } else if (a % 5 == 4) {
38                 k++;
39                 if (a > a5)
40                     a5 = a;
41             }
42         }
43 
44         if (h > 0) {
45             System.out.print(a1 + " ");
46         } else {
47             System.out.print("N" + " ");
48         }
49 
50         if (a2.size() > 1) {
51             int sum = 0;
52             for (int i = 0; i < a2.size(); i++) {
53                 if (i % 2 == 0) {
54                     sum += a2.get(i);
55                 } else {
56                     sum = sum - a2.get(i);
57                 }
58             }
59             System.out.print(sum + " ");
60         } else {
61             System.out.print("N" + " ");
62         }
63 
64         if (a3 > 0) {
65             System.out.print(a3 + " ");
66         } else {
67             System.out.print("N" + " ");
68         }
69 
70         if (j > 0) {
71             double ave = a4 / j;
72             System.out.printf("%.1f ", ave);
73         } else {
74             System.out.print("N" + " ");
75         }
76 
77         if (k > 0) {
78             System.out.print(a5);
79         } else {
80             System.out.print("N");
81         }
82     }
83 }

 

以上是关于PAT——1012. 数字分类的主要内容,如果未能解决你的问题,请参考以下文章

Day014 PAT乙级 1012 数字分类

PAT1012. 数字分类 (20)

PAT 1012 数字分类

PAT-乙级-1012 数字分类

PAT——1012. 数字分类

PAT 1012. 数字分类 (20)