1. 程式人生 > >按要求對數字進行分類

按要求對數字進行分類

題目描述
給定一系列正整數,請按要求對數字進行分類,並輸出以下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”。

輸入例子:
13 1 2 3 4 5 6 7 8 9 10 20 16 18

輸出例子:
30 11 2 9.7 9

import java.util.Scanner;
import java.text.DecimalFormat;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in); 
        int n=sc.nextInt();
        int a[]=new int
[n]; int sum=0; int count=0,count1=0; int sum2=0,sum3=0; int num=0,max=0; DecimalFormat df = new DecimalFormat("0.0"); for(int i=0;i<n;i++){ a[i]=sc.nextInt(); } for(int i=0;i<n;i++){ if(a[i]%5==0&&a[i]%2==0){//既能整除5也能整除2的數
sum=sum+a[i];//求和 }else if(a[i]%5==1){//除5餘1的數 count++; if(count%2==1){//如果此數在除5餘1的序列的偶數位 sum2=a[i]+sum2; }else{//如果此數在除5餘1的序列的奇數位 sum2=sum2-a[i]; } }else if(a[i]%5==2){//除5餘2的數 num++;//個數加1 }else if(a[i]%5==3){//除5餘3的數 sum3=a[i]+sum3;//求和 count1++;//求個數 }else if(a[i]%5==4){//除5餘4的數 max=Math.max(max,a[i]);//求最大值 } } if(sum==0){ System.out.print("N "); }else{ System.out.print(sum+" "); } if(sum2==0){ System.out.print("N "); }else{ System.out.print(sum2+" "); }if(num==0){ System.out.print("N "); }else{ System.out.print(num+" "); }if(sum3==0){ System.out.print("N "); }else{ float s=(float)sum3/count1; System.out.print(df.format(s)+" "); }if(max==0){ System.out.print("N"); }else{ System.out.print(max); } } }