题目链接:http://uva.onlinejudge.org/external/5/591.pdf
叠箱子,叠到平齐,然后计算要移动几个箱子。
思路是先算出平均值,然后用所有比平均值大的数减去平均值求差,然后将这些差求和。
附上代码:
1 #include<stdio.h> 2 int main() 3 { 4 int t,n,s,i,a[50],ss; 5 for(t=1;;t++) 6 { 7 scanf("%d",&n); 8 if(n==0) break; 9 s=0; 10 for(i=0;i<n;i++) 11 { 12 scanf("%d",&a[i]); 13 s+=a[i]; 14 } 15 s/=n; 16 ss=0; 17 for(i=0;i<n;i++) 18 { 19 if(s>a[i]) ss+=s-a[i]; 20 } 21 printf("Set #%d\nThe minimum number of moves is %d.\n\n",t,ss); 22 } 23 return 0; 24 }