L1-4 调和平均 (10分)
N 个正数的算数平均是这些数的和除以 N,它们的调和平均是它们倒数的算数平均的倒数。本题就请你计算给定的一系列正数的调和平均值。
输入格式:
每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (≤1000);第 2 行给出 N 个正数,都在区间 [0.1,100] 内。
输出格式:
在一行中输出给定数列的调和平均值,输出小数点后2位。
输入样例:
8
10 15 12.7 0.3 4 13 1 15.6
输出样例:
1.61
作者 | 陈越 |
单位 | 浙江大学 |
代码长度限制 | 16 KB |
时间限制 | 400 ms |
内存限制 | 64 MB |
题解
比赛时只得了9分的代码
#include<bits/stdc++.h>
#define N 1003
using namespace std;
int main() {
int n;
double a[N],ans=0.0;
scanf("%d",&n);
for(int i=0; i<n; ++i) {
cin >> a[i];
ans += 1.0/a[i];
}
ans /= 1.0*n;
ans = 1.0/ans;
printf("%.2lf",ans);
return 0;
}
根据评论修改后的代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
double a,ans=0.0;
scanf("%d",&n);
for(int i=0; i<n; ++i) {
cin >> a;
ans += 1.0/a;
}
ans /= 1.0*n;
ans = 1.0/ans;
printf("%.2lf",ans);
return 0;
}