这道题都快要被坑哭了,纯粹的水题,巨水,还是浪费我很多时间,归结到底还是英语太差
within one cent。。。这个使说精确到1美分,后面的小数就不再考虑了,我理解成每个人平均交的钱可以在一美分的差距之内
后来看了解题报告做出来,不爽,一点感觉都没有
#include <stdio.h>
#include<algorithm>
#include<math.h>
const int INF=1000000;
using namespace std;
int main()
{
int n,i;
double a[1100];
while(scanf("%d",&n) && n)
{
double sum=0;
for (i=0; i<n; i++)
{
scanf("%lf",&a[i]);
sum+=a[i];
}
double aver=sum/n;
double dollar1=0,dollar2=0;
aver=int(aver*100+0.5)/100.0;
for (i=0;i<n;i++)
{
if(a[i]<aver) dollar1+=aver-a[i];
else dollar2+=a[i]-aver;
}
printf("$%.2lf\n",min(dollar1,dollar2));
}
return 0;
}