您的位置:首页 > 编程语言 > Java开发

牛客网PAT题目1002——数字分类(Java)

2017-11-22 19:21 351 查看
题目详情见链接:

https://www.nowcoder.com/pat/6/problem/4078

代码如下:

import java.util.Scanner;
public class Main {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
short number = scanner.nextShort();    //整数个数
short[] numbers = new short[number];
for(int i=0;i<number;i++)
numbers[i]=scanner.nextShort();

float[] A=new float[6];
int[] geshu= new int[5];           //记录各类数字的个数
for(int i=0;i<numbers.length;i++) {
if(numbers[i]%5==0 && numbers[i]%2==0) {    //计算A1
A[1]+=numbers[i];
geshu[0]++;
}

if(numbers[i]%5==1) {                     //计算A2
geshu[1]++;
if(geshu[1]%2==1)
A[2]+=numbers[i];
else
A[2]+=(-numbers[i]);
}

if(numbers[i]%5==2) {                       //计算A3
A[3]++;
geshu[2]++;
}

if(numbers[i]%5==3) {
A[4]+=numbers[i];
geshu[3]++;
}

if(numbers[i]%5==4) {                       //计算A5
geshu[4]++;
if(numbers[i]>A[5])
A[5]=numbers[i];
}
}
A[4]/=geshu[3];                                  //计算A4

for(int i=0;i<5;i++) {
if(geshu[i]==0&&i!=4)
System.out.print("N ");
else if(i==3&&geshu[i]!=0)
System.out.printf("%.1f ",A[i+1]);
else if(i==4&&geshu[i]!=0)
System.out.printf("%d\n",(int)A[i+1]);
else if(i==4&&geshu[i]==0)
System.out.println("N");
else
System.out.printf("%d ",(int)A[i+1]);
}

}
}


题目较简单,但是最终格式化输出要分情况讨论,因为题目要求行末不得有多余空格,因此需要考虑分情况讨论A5是否存在。

考虑:如何减少内存?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: