题目链接: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