JAVA-1012. 数字分类 (20)

xiaoxiao2021-02-28  45

import java.util.Scanner; /** * 给定一系列正整数,请按要求对数字进行分类,并输出以下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 * * @author 543363559@qq.com * @date 2017年7月10日 下午11:25:33 */ public class Main { public static void main(String[] args) { int n; int[] arr = new int[6]; boolean[] ar = new boolean[6]; // 判断是否存在某一类数字 int flag2 = -1, flag4 = 0; int temp, t; double ansarr4; Scanner sc = new Scanner(System.in); n = sc.nextInt(); // 读取一个判断一个 计算相对应的A for (int i = 0; i < n; i++) { t = sc.nextInt(); temp = t % 5; if (temp == 0 && t % 2 == 0) { ar[1] = true; arr[1] += t; } else if (temp == 1) { ar[2] = true; flag2 *= -1; arr[2] += t * flag2; } else if (temp == 2) { ar[3] = true; arr[3]++; } else if (temp == 3) { ar[4] = true; flag4++; arr[4] += t; } else if (temp == 4) { ar[5] = true; arr[5] = t > arr[5] ? t : arr[5]; } } ansarr4 = arr[4] * 1.0 / flag4; for (int i = 1; i < 4; i++) { if (ar[i]) { System.out.print(arr[i] + " "); } else { System.out.print("N "); } } if (ar[4]) { System.out.printf("%.1f" + " ", ansarr4); } else { System.out.print("N "); } if (ar[5]) { System.out.print(arr[5]); } else { System.out.print("N"); } } }
转载请注明原文地址: https://www.6miu.com/read-81636.html

最新回复(0)