PAT 1012. 数字分类 java版

来源:互联网 发布:软件服务外包发展方向 编辑:程序博客网 时间:2024/05/17 07:18

首先说明,java又被黑了。在pat上运行部分超时,在牛客网上通过。不过也可能和我的代码不简练有关系。
给定一系列正整数,请按要求对数字进行分类,并输出以下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”。

import java.util.Scanner;public class Main {        public static void fun1(int[] c){        int a1 = 0;        boolean b = false;        for(int i = 0;i<c.length;i++){            if(c[i]%10==0){                a1 = a1 + c[i];                b = true;            }        }        if(b){            System.out.print(a1+" ");        }        else{            System.out.print("N"+" ");        }        }        public static void fun2(int[] c){            int a2 = 0;            boolean b = false;            for(int i = 0,j = 0;i<c.length;i++){                if(c[i]%5==1){                    b = true;                    if(j%2==0){                        a2=a2+c[i];                    }                    else{                        a2=a2-c[i];                    }                    j++;                }            }            if(b){                System.out.print(a2+" ");            }            else{                System.out.print("N"+" ");            }        }        public static void fun3(int[] c){            int a3=0;            boolean b = false;            for(int i = 0;i<c.length;i++){                if(c[i]%5==2){                    b = true;                    a3++;                }            }            if(b){                System.out.print(a3+" ");            }            else{                System.out.print("N"+" ");            }        }        public static void fun4(int[] c){            float a4=0;            boolean b = false;            int j = 0;            for(int i=0;i<c.length;i++){                if(c[i]%5==3){                    b = true;                    j = j + 1;                    a4= a4 + c[i];                }            }            if(a4!=0)            a4=a4/j;            if(b){                System.out.printf("%.1f ",a4);            }            else{                System.out.print("N"+" ");            }        }        public static void fun5(int[] c){            int a5=0;            boolean b = false;            for(int i = 0;i<c.length;i++){                if(c[i]%5==4){                    b = true;                    if(c[i]>a5){                        a5 = c[i];                      }                }            }            if(b){                System.out.print(a5);            }            else{                System.out.print("N");            }        }    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int n = in.nextInt();        int[] a = new int[n];        int a1=0,a2=0,a3=0,a5=0;        float a4=0;        for(int i = 0;i<n;i++){            a[i] = in.nextInt();        }        fun1(a);        fun2(a);        fun3(a);        fun4(a);        fun5(a);}}
0 0
原创粉丝点击