这道题都快要被坑哭了,纯粹的水题,巨水,还是浪费我很多时间,归结到底还是英语太差
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; }