思路:水题。。。这个和挑战编程上那题一样,求最小移动啥啥的,所以只需要判断比均值大的和比均值小的部分,求最大值即可
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; int num[55]; int main() { int n; int t=0; while(scanf("%d",&n),n) { int sum=0; for(int i=1;i<=n;i++) { scanf("%d",&num[i]); sum+=num[i]; } sum/=n; printf("Set #%d ",++t); int tmp=0,cnt=0; for(int i=1;i<=n;i++) { if(num[i]>sum) tmp+=num[i]-sum; else cnt+=sum-num[i]; } printf("The minimum number of moves is %d. ",max(tmp,cnt)); } return 0; }