【java】数字分类
链接:https://www.nowcoder.com/questionTerminal/473c219f9e4d4ab2851ed388895a9c86
来源:牛客网
给定一系列正整数,请按要求对数字进行分类,并输出以下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
输出
30 11 2 9.7 9
import java.util.Scanner; /** * @author: ycz * @date: 2018/12/21 0021 14:42 * @description: */ public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = sc.nextInt(); int[] nums = new int[count]; int[] result = new int[5]; for (int i=0;i<count;i++){ nums[i] = sc.nextInt(); } boolean flag = true; int c4Count = 0; for (int num : nums){ switch (num%5){ case 0: if (num%2 == 0){ result[0] += num; } break; case 1: if (flag){ result[1] += num; flag = false; }else { result[1] -= num; flag = true; } break; case 2: result[2]++; break; case 3: result[3] += num; c4Count++; break; case 4: if (num > result[4]){ result[4] = num; } break; default: throw new RuntimeException("错误"); } } print(result,c4Count); } private static void print(int[] nums,int count){ for (int i=0;i<nums.length;i++){ if (i == nums.length-1) { if (nums[i] == 0) { System.out.print("N"); } else { System.out.print(nums[i]); } }else if (i == 3){ if (count != 0){ System.out.printf("%.1f ",(double)nums[3]/count); }else { System.out.print("N "); } } else { if (nums[i] == 0){ System.out.print("N "); }else { System.out.print(nums[i]+" "); } } } } }