题解:本题主要考查模拟,结题关键:
1.求平均数,简化题目。
2.过滤前后的0.
3.向右移数,并且加后滤0(关键中的关键)
代码如下:
#include<iostream>
using namespace std;
int a[10000];
int main()
{
int n,ave=0,total=0,step=0,i,j;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
total=a[i]+total;
}
ave=total/n;
for(i=1;i<=n;i++)a[i]=a[i]-ave;
i=1;j=n;
for(;i<n&&a[i]==0;)i++;
for(;j>1&&a[j]==0;)j--;
for(;i<j;)
{
a[i+1]=a[i+1]+a[i];
a[i]=0;
step++; i++;
while(a[i]==0&&i<j)i++;
}
cout<<step;
return 0;
}