基本代码如下
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //输入数组长度 int input=sc.nextInt(); //声明一个数组,长度为input double[] arr=new double[input]; //输入数组元素 for(int i=0;i<input;i++){ arr[i]=sc.nextDouble(); } //声明一个变量用于就算平均值 double avg=0; for (int i = 0; i < input; i++) { // 计算数组元素的和 avg += arr[i]; } //计算数组元素的平均值 avg=avg/input; //声明一个变量,用于表示结果 double result=0; //计算标准差 for (int i = 0; i < input; i++) { // 计算标准差的平方和 result += Math.pow(arr[i]-avg,2); } if(input!=1) { result=result/(input-1); } //输出结果,保留两位小数 System.out.printf("%.2f",result); } }
输入样例
4
974 559 974 233
总结,运行数据量过大时可能会超时,没有找到解决原因,输入样例可为小数,输出结果保留两位小数,代码仍然有不足。