PAT (Basic Level) Practice 1012 数字分类
https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840
分析
对每个数字进行case操作即可 这里我用了if 懒得写了
然后遇到的问题是 PAT 1012 数字分类 最后一个测试点(测试点8)错误
原因就是 A2的判断因为可能 正负抵消为0
例如:
2
6 6
N N N N N
正确答案应该是 N 0 N N N
所以不能通过A2的数值来判断 输出。
所以我加了一个 if(yesn) yesn=false;
来特判有没有参与运算。
同时 发现牛客的测试数据真的不严谨hhh 所以不在牛客刷了!
java代码
package PAT.BasicLevel;
import java.util.Scanner;
public class _1002数字分类 {
public static void main(String[] args) {
int A1,A2,A3,A5;
double A4;
A1=A2=A3=A5=0;
A4=0;
int A4count=0;
Scanner cin =new Scanner(System.in);
int n=cin.nextInt();
boolean add=true;
boolean yesn=true;
for(int i=0;i<n;i++){
int x=cin.nextInt();
if(x%5==0&&x%2==0){
A1+=x;
}else
if(x%5==1){
if(yesn) yesn=false;
if(add) A2+=x;
else A2-=x;
add=!add;
}else
if(x%5==2){
A3++;
}else
if(x%5==3){
A4+=x;
A4count++;
}else
if(x%5==4){
if(x>A5) A5=x;
}
}
if(A1==0){
System.out.print("N ");
}else
System.out.print(A1+" ");
if(yesn){
System.out.print("N ");
}else
System.out.print(A2+" ");
if(A3==0){
System.out.print("N ");
}else
System.out.print(A3+" ");
if(A4count==0){
System.out.print("N ");
}else {
A4 /= A4count;
System.out.printf("%.1f ", A4);
}
if(A5==0){
System.out.print("N");
}else
System.out.print(A5);
//若其中某一类数字不存在,则在相应位置输出“N”。
}
}
本文作者:Author: 寒光博客
文章标题:[PAT]1012 数字分类
本文地址:https://dxoca.cn/pat/261.html 百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
本文地址:https://dxoca.cn/pat/261.html 百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。