1. 程式人生 > >Pat 1002 數字分類Java解法

Pat 1002 數字分類Java解法

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

輸入例子:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

輸出例子:

30 11 2 9.7 9
import java.util.*;
 
public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] numbers = new int[n];
        for (int i=0;i<n;i++){
            numbers[i] = scanner.nextInt();
        }
        System.out.println(a1(numbers)+" "+a2(numbers)+" "+a3(numbers)+" "+a4(numbers)+" "+a5(numbers));
 
    }
    public static String a1(int[] numbers) {
        int sum = 0;
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] % 10 == 0)
                sum += numbers[i];
        }
 
        if (sum == 0)
            return "N";
        else
            return String.valueOf(sum);
    }
    public static String a2(int[] numbers){
        int flag=1;
        int sum=0;
        for (int i=0;i<numbers.length;i++) {
            if (numbers[i]%5==1){
                if (flag>0) {
                    sum += numbers[i];
                    flag=-flag;
                }else {
                    sum -= numbers[i];
                    flag=-flag;
                }
            }
        }
 
        if (sum==0)
            return "N";
        else
            return String.valueOf(sum);
    }
    public static String a3(int[] numbers) {
        int sum=0;
        for (int i=0;i<numbers.length;i++){
            if (numbers[i]%5==2)
                sum++;
        }
        if (sum==0)
            return "N";
        else
            return String.valueOf(sum);
    }
    public static String  a4(int[] numbers) {
        double sum=0;
        int x=0;
        for (int i=0;i<numbers.length;i++){
            if (numbers[i]%5==3) {
                sum += numbers[i];
                x++;
            }
        }
        if (x==0)
            return "N";
        else {
            String result = String.format("%.1f", sum / x );
            return result;
        }
    }
    public static String a5(int[] numbers) {
        int max = 0;
        for (int i=0;i<numbers.length;i++){
            if (numbers[i]%5==4&&numbers[i]>max)
                max = numbers[i];
        }
        if (max==0)
            return "N";
        else
            return String.valueOf(max);
    }
}