题解 | 牛牛的数学作业
牛牛的数学作业
https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342
#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
cout << fixed << setprecision(3);
while (T--) {
int n;
cin >> n;
vector<long long> nums(n);
long long min_val = numeric_limits<long long>::max();
long long max_val = numeric_limits<long long>::min();
long long sum = 0;
// 读取数据并计算最小值、最大值和总和
for (int i = 0; i < n; i++) {
cin >> nums[i];
sum += nums[i];
min_val = min(min_val, nums[i]);
max_val = max(max_val, nums[i]);
}
// 计算极差
long long range = max_val - min_val;
// 计算平均值(使用double提高精度)
double avg = static_cast<double>(sum) / n;
// 计算方差
double variance = 0.0;
for (int i = 0; i < n; i++) {
double diff = static_cast<double>(nums[i]) - avg;
variance += diff * diff;
}
variance /= n;
cout << range << " " << variance << "\n";
}
return 0;
}
查看24道真题和解析