这道题简单的翻译成纯数学语言就是给你n个数字,每次运算只能是加1或者减1,问经过最短几步可以使得n个数字相等

由于题目限定了n个数字一定有平均数,所以求出avg,将所有比其大的数字或者比其小的数字的差加起来就是步数

见代码:

#include <stdio.h>

int main()
{
int n,h[],s=;
while(scanf("%d",&n)!=EOF&&n)
{
int i,sum=,avg,result=;
for(i=;i<n;i++)
{
scanf("%d",&h[i]);
sum+=h[i];
} avg=sum/n;
for(i=;i<n;i++)
{
if(h[i]<avg)
result+=(avg-h[i]);
} printf("Set #%d\nThe minimum number of moves is %d.\n\n",s++,result);
} return ;
}
05-11 20:25