高等程序设计2020-2021夏季小学期训练
平均方差
问题描述
一个数列的平均方差是指数列中的每个元素与数列的平均值的差的平方和的平均值,比如下面数列:
1 2 3 4 5 6 7
其平均值为4,每个元素与平均值的差的平方为
9 4 1 0 1 4 9
其平方和为28,所以该数列的平均方差为4。
对给定的数列,求出其平均方差。
输入形式
对于每组测试数据,输出一个整数:平均方差。平均方差不是整数的,输出其向下取整的整数。比如平均方差是4.5,输出4。
样例
【样例输入】
7
1 2 3 4 5 6 7
4
1 2 3 4
0
【样例输出】
4
1
代码展示
#include<bits/stdc++.h>
using namespace std;
int main()
{
int N;
while(1)
{
cin>>N;
if(N==0)
return 0;
double num[N];
for(int i=0;i<N;i++)
cin>>num[i];
double sum=0;
for(int i=0;i<N;i++)
sum=sum+num[i];
double it=sum/N;
double pfh=0;
for(int i=0;i<N;i++)
pfh+=(num[i]-it)*(num[i]-it);
int x=pfh/N;
cout<<x<<endl;
}
}