PAT (Basic Level) 1012 数字分类 (20分)JAVA解法

在这里插入图片描述

输入样例 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



import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] arr = new int[N];
		for (int i = 0; i < arr.length; i++) {
			arr[i]=sc.nextInt();
		}
		java.text.DecimalFormat df = new DecimalFormat("#.#");
		StringBuilder sb = new StringBuilder();
		if(A1(arr)==Integer.MIN_VALUE) {
			sb.append("N"+" ");
		}else {
			sb.append(A1(arr)+" ");
		}
		if(A2(arr)==Integer.MIN_VALUE) {
			sb.append("N"+" ");
		}else {
			sb.append(A2(arr)+" ");
		}
		if(A3(arr)==Integer.MIN_VALUE) {
			sb.append("N"+" ");
		}else {
			sb.append(A3(arr)+" ");
		}
		if(A4(arr)==Double.MIN_VALUE) {
			sb.append("N"+" ");
		}else {
			sb.append(df.format(A4(arr))+" ");
		}
		if(A5(arr)==Integer.MIN_VALUE) {
			sb.append("N"+" ");
		}else {
			sb.append(A5(arr)+" ");
		}
		System.out.println(sb.substring(0, sb.length()-1));
	}
	static int A1(int[] re) {
		int ans =0;
		boolean flag =true;
		for (int i = 0; i < re.length; i++) {
			if(re[i]%5==0&&re[i]%2==0) {
				flag=false;
				ans+=re[i];
			}
		}
		if(flag) {
			return Integer.MIN_VALUE; 
		}else {
			return ans;
		}
	}
	static int A2(int[] re) {
		List<Integer> ans = new ArrayList<>();
		boolean flag = true;
		for (int i = 0; i < re.length; i++) {
			if(re[i]%5==1) {
				flag=false;
				ans.add(re[i]);
			}
		}
		int ret=0;
		if(flag) {
			return Integer.MIN_VALUE;
		}
		for (int i = 0; i < ans.size(); i++) {
			if(i%2==0) {
				ret+=ans.get(i);
			}else {
				ret-=ans.get(i);
			}
		}
		return ret;
		
		
	}
	static int A3(int[] re) {
		int count=0;
		boolean flag = true;
		for (int i = 0; i < re.length; i++) {
			if(re[i]%5==2) {
			flag=false;
			count++;	
			}
		}
		if(flag) {
			return Integer.MIN_VALUE;
		}else {
			return count;
		}
	}
	static double A4(int[] re) {
		int ping=0;
		int cnt=0;
		boolean flag=true;
		for (int i = 0; i < re.length; i++) {
			if(re[i]%5==3) {
			flag=false;
			ping+=re[i];
			cnt++;
			}
		}
		if(flag) {
			return Double.MIN_VALUE; 
		}else {
			return (double)ping/cnt;
		}
		
	}
	static int A5(int[] re) {
		int max=Integer.MIN_VALUE;
		boolean flag = true;
		for (int i = 0; i < re.length; i++) {
			if(re[i]%5==4&&re[i]>max) {
			flag=false;
			max=re[i];
			}
		}
		if(flag) {
			return Integer.MIN_VALUE;
		}else {
			return max;	
		}
		
	}
}

在这里插入图片描述

发布了81 篇原创文章 · 获赞 1 · 访问量 999

猜你喜欢

转载自blog.csdn.net/qq_44028719/article/details/104310344
今日推荐