输入一行数,每一个数代表有n个砖块,求至少移动几次才能使砖块都一样高。
首先求这一组数的平均数,然后和数组中每个数比较,若该数比平均数小,则需要往上添加砖块,添加砖块数为平均数减去该数。
#include<iostream>
using namespace std;
int main()
{
int j=0,a,b,c[100][100],i,d,f[100]={0};
while(cin>>a&&a!=0)
{
b=0;
for(i=0;i<a;i++)
{
cin>>c[j][i];
b=b+c[j][i];
}
d=b/a;//计算平均数
for(i=0;i<a;i++)
{
if(d>c[j][i])
f[j]=f[j]+d-c[j][i];
}
j++;
}//将平均数与每个数做比较
for(i=0;i<j;i++)
{
cout<<"Set #"<<i+1<<endl;
cout<<"The minimum number of moves is "<<f[i]<<'.'<<endl<<endl;
}
}