1. 程式人生 > >PAT——1012. 數字分類

PAT——1012. 數字分類

一個 ... ++ 多余 ssi ann 試用 大數字 i++

給定一系列正整數,請按要求對數字進行分類,並輸出以下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. 數字分類