1464、1000、876、850、776、687、527、504、412、370,分成两组,每组五个数,求两组和之差最小值

2025-06-29 07:04:24
推荐回答(3个)
回答1:

1464、1000、876、850、776、687、527、504、412、370,分成两组,每组五个数,两组和之差最小值是多少?
这10个数的总和是7466,平均分成2份,每份和是3733
因此,分成的两组数之和越接近3733,求出的差就越小
如果不用程序,就只能试试了

回答2:

经我详细测算
两组的最小差值就是 16
没有比这个更小的了
该两组数为:
1464、876、527、504、370 和值为 3741
1000、850、776、687、412 和值为 3725

回答3:

编程就可以了,帮你把C(10,5)=252种情况都算出来比较就行,你的答案16是对的;
C++源代码:
#include
#include
using namespace std;
int main()
{
const int n=10;
int a[n]={1464,1000,876,850,776,687,527,504,412,370};
int sum=0;//算总和
for(int i=0;isum+=a[i];
int min=sum;//用于记录最小值min,用总和作为初始值
cout<//做各种比较的可能
for(int i=0;ifor(int j=i+1;jfor(int k=j+1;kfor(int l=k+1;lfor(int m=l+1;m{
int t1=a[i]+a[j]+a[k]+a[l]+a[m];//记其中5个数总和为t1
int t2=sum-t1;//记另外5个数总和为t2,用所有数总和减去t1就得到
if(min>abs(t1-t2))//如果比原有的最小差更小的话,就取更小的差
min=abs(t1-t2);
}
cout<<"分两组数的最小差="<system("pause");
return 0;
}