《ACM程序设计》书 训练题中的K题

    xiaoxiao2021-03-25  10

    题意是移动最少数量的方块,使每组方块一样高。输入0结束。

    思路实际上就是求每一组方块离平均值的差的总和。

    注意输出格式,要输出一个空行。

    代码:

    #include<iostream> #include<iomanip> #include<cmath> #include<string.h> using namespace std; int main() { long double c=0,d,b,x=0,a[50],k[10000]; long long i,j,n=0; while (cin>>b) {if (b==0) { for (i=0;i<n;i++) { cout<<"Set #"<<i+1<<endl; cout<<"The minimum number of moves is "<<k[i]<<"."<<endl; cout<<endl; }n=0; } else {c=0,x=0; for (i=0;i<b;i++) {cin>>a[i]; c+=a[i];} d=c/b; for (j=0;j<b;j++) { x+=fabs(a[j]-d); } k[n]=x/2; n++;} } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-156222.html

    最新回复(0)