题目描述:原题链接
解法:
思路:
因为分数是分均分配的,所以[0,90]之间[81,90]的人是占10%的,所以平时分给9分,就可以让这10%的人上90。把全部平时分加起来=sum,sum/n就是平时分的平均分,81x+sum/n(100%-x)=90,化简就是x=(90-sum/n)/(81-sum/n)*100%
x==(90-sum/n)/(81-sum/n)
x==(sum/n-90)/(sum/n-81)
x==(sum-90n)/(sum-81n)
x==(sum-90n)/(9n+sum-90n)
x==s/(9n+s)
#include<iostream>
#include<iomanip>
using namespace std;
typedef unsigned long long ll;
const int N = 1e5 + 10;
int n, a, s;
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n;
s = 0;
for(int i = 0; i < n; ++i)
{
cin >> a;
s += a - 90;
}
cout << fixed;
cout << setprecision(2) << 100.0 * s / (9 * n + s) << '%' << endl;
return 0;
}