题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2088
解题思路:一堆高度不同的砖块,需要把它们砌成一堵墙,即每一堆砖的高度相同(即砖的总数除以砖的堆数,即砖的平均值),然后砖的数目比平均数大的需要搬砖给砖的数目比平均数少的,最后把它们加起来就可以了。
反思:PE了两次,因为题目中说的是每一组测试数据之间要空一行,读题要仔细。
#include<stdio.h> int main() { int n,a[60]; int i,flag=0; while(scanf("%d",&n)!=EOF&&n) { if(flag) printf("\n"); int sum=0,ave=0,num=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); sum+=a[i]; } ave=sum/n; for(i=0;i<n;i++) { if(a[i]>ave) { num+=a[i]-ave; } } printf("%d\n",num); flag=1; } }
原文:http://www.cnblogs.com/wuyuewoniu/p/4090328.html