给定一系列正整数,请按要求对数字进行分类,并输出以下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 }