西北工业大学 校赛 随机序列 题解

题目

西北工业大学 校赛 随机序列 题解_第1张图片

思路

数据量不大,直接用类存储每一个卷子。直接算就是了。这道题的问题在于很多人没法控制格式化输出。其实很简单,他题目没说,但可以观察出是四舍五入到小数后第三位,直接System.out.println("%.3f",%float) 就完事
import java.util.*;
public class 测试{
    public static class paper{
        int  number;
        int []list;
        public paper(int number){
            this.number=number;this.list=new int[number];
        }
        
    }
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        paper [] paperList=new paper[n];
        for(int i =0;i<n;i++) {
        	int number=sc.nextInt();
        	paperList[i]=new paper(number);
        	for(int j =0;j<number;j++) {
        		paperList[i].list[j]=sc.nextInt();
        	}
        }
        for(int i =0;i<n;i++){
            getJiCha(paperList[i]);
        }
    }
    public static void getJiCha(paper p){
        Arrays.sort(p.list);
        System.out.print((p.list[p.list.length-1]-p.list[0])+" " );
        getFangcha(p);
    }
    public static void getFangcha(paper p){
        double  av=0;
        for(int i = 0;i<p.list.length;i++){
            av+=p.list[i];
        }
        av/=p.list.length;
        double sum=0;
        for(int i=0;i<p.list.length;i++){
           double tmp=  Math.pow(p.list[i]-av,2);
           sum+=tmp;
        }
        sum/=p.list.length;
        System.out.printf("%.3f\n",sum);
    }
    
}

你可能感兴趣的:(面向对象应用,数论及数据题)