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

浙江大学PAT (Basic Level) Practice (中文)1012数字分类JAVA实现代码及分析

2019-03-13 18:04 519 查看

1012

数字分类


这道题需要注意的地方有两个:一个是A2计算有效性的判断;另一个是A4的输出格式。
重点是A2计算是否有效这一点,因为判断某一类数字不存在的条件是它是否等于0,但是A2有可能一开始就不存在,也有可能是经过一系列的计算之后得到了为0的结果,此时不能输出字符“N”,因为A2是经过有效计算的,要输出它本身的0值。
A4的输出格式直接按照浮点数小数点后保留一位的格式进行输出。
代码如下:

import java.util.Scanner;

public class Main {
public static void main(String[] args)
{
int n;
int temp;
boolean flag=true;//交差计算A2
boolean flag2=false;//标记A2是否经过计算,即是否有效
int A[]=new int [6];
Scanner input=new Scanner(System.in);
n=input.nextInt();
int Y3=0;
for(int i=0;i<n;i++)
{
temp=input.nextInt();
if(temp%5==0&&temp%2==0)
{
A[1]+=temp;
}
if(temp%5==1)
{
flag2=true;
if(flag)
{
A[2]=temp+A[2];
flag=false;
}
else
{
A[2]=A[2]-temp;
flag=true;
}
}
if(temp%5==2)
{
A[3]++;
}
if(temp%5==3)
{
Y3++;
A[4]+=temp;
}
if(temp%5==4)
{
if(temp>A[5])
{
A[5]=temp;
}
}
}
double a4;
for(int i=1;i<6;i++)
{
if(i==4)
{
if(A[i]==0)
{
System.out.print("N"+" ");
}
else
{
a4=(double)A[4]/Y3;
System.out.print(String.format("%.1f", a4)+" ");
}

continue;
}
if(i<5)
{

if(A[i]==0)
{
if(i==2)//A2单独进行一次有效判断
{
if(flag2)
{
System.out.print(A[i]+" ");
continue;
}
}
System.out.print("N"+" ");
}
else
{
System.out.print(A[i]+" ");
}

}
if(i==5)
{
if(A[i]==0)
{
System.out.print("N");
}
else
{
System.out.print(A[i]);
}

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