美团笔试,为啥我第二题调到死都是18%,实在搞不懂哪里错
import java.util.*; public class Main { public static final double P=3.141592697; public static void main(String[] args) { Scanner sc=new Scanner(System.in); String num=sc.nextLine(); String[] cover=sc.nextLine().split("\\s+"); Integer[]or=new Integer[cover.length]; for(int i=0;i<cover.length;i++){ or[i]=Integer.parseInt(cover[i]); } Arrays.sort(or,new MaxComparator()); double[]res=new double[cover.length]; for(int i=0;i<or.length;i++){ if(i==or.length-1) res[i]=P*or[i]*or[i]; else res[i]=P*or[i]*or[i]-P*or[i+1]*or[i+1]; } double sum=0; for(int i=0;i<res.length;i+=2) sum+=res[i]; sum=(double)Math.round(sum*100000)/100000; System.out.println(sum); } public static class MaxComparator implements Comparator<Integer>{ public int compare(Integer o1,Integer o2){ return o2-o1; } } }
#美团#