PAT(B) 1012 数字分类(Java)

题目链接:1012 数字分类
代码
/**
 * Score 20
 * Run Time 142ms
 * @author wowpH
 * @version 1.1
 */

import java.util.Scanner;

public class Main {
	private static void output(int x, int count) {
		if (count > 0) {
			System.out.print(x + " ");
		} else {
			System.out.print("N" + " ");
		}
	}

	public static void main(String[] args) {
		// 输入
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] x = new int[N];
		for (int i = 0; i < N; i++) {
			x[i] = sc.nextInt();
		}
		sc.close();

		int A1, A2, A3, A5;
		double A4;
		A1 = A2 = A3 = A5 = 0;
		A4 = 0;

		// 统计A1,A2,A4,A5的值改变的次数
		int a1Count, a2Count, a4Count, a5Count;
		a1Count = a2Count = a4Count = a5Count = 0;

		for (int i = 0; i < N; i++) {
			switch (x[i] % 5) {
			case 0:	// 余数为0
				if (0 == (x[i] & 1)) {	// x[i]为偶数
					A1 += x[i];
					a1Count++;
				}
				break;
			case 1:	// 余数为1
				if (0 == (a2Count & 1)) {	// a2Count为偶数
					A2 += x[i];
				} else {
					A2 -= x[i];
				}
				a2Count++;
				break;
			case 2:	// 余数为2
				A3++;	// A3本身就是记录的个数
				break;
			case 3:	// 余数为3
				A4 += x[i];		// A4表示余数为3的数的和
				a4Count++;
				break;
			case 4:	// 余数为4
				if (A5 < x[i]) {	// A5表示余数为4的数中最大的数
					A5 = x[i];
					a5Count++;
				}
				break;
			default:	// 否则什么也不做,没用的一句
			}
		}

		output(A1, a1Count);
		output(A2, a2Count);
		output(A3, A3);	// A3本身就是记录的个数

		if (a4Count > 0) {
			System.out.printf("%.1f ", A4 / a4Count);// 要除以个数
		} else {
			System.out.print("N" + " ");
		}

		if (a5Count > 0) {
			System.out.println(A5);
		} else {
			System.out.println("N");
		}
	}
}

注意:某个值不存在的时候,输出N

原文地址:https://www.cnblogs.com/wowpH/p/11060786.html