练习一:
基本思路:
在循环中,动态的进行判断和解决!!!!!
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
long S=scan.nextLong();
long[] a=new long[n];
double ans=0;
for(i=0;i<n;i++){
a[i]=scan.nextLong();
}
Arrays.sort(a);//从小到大
double avg=(double)S/n;
for(int i=0;i<n;i++){
if(s<=(n-i)*a[i]){//后面的都能付得起剩下的平均值
ans+=(n-i)*Math.pow(S/(n-i)-avg,2);
break;
}else{
ans+=Math.pow(a[i]-avg,2);
s-=a[i];
}
}
ans=Math.sqrt(ans/n);
scan.close();
}
}