C++:上机练习

C++:上机练习,第1张

现有nx个x,ny个y,nz个z,nw个w,将这若干个非负整数分别置于A数组中或B数组中。

规则是:所有x必须放入A数组,所有y必须放入B数组,z和w可以放入A数组也可以放入B数组。

SA为A数组的和,SB为B数组的和,S为SA和SB的较大者。

当x,y,z,w和nx,ny,nz,nw确定后,如何放置,可以使得S最小,并求出这个S值。

其中 0<=x,y,z,w<=10000000,nx,ny,nz,nw<=10000000。

如:x,y,z,w,nx,ny,nz,nw分别为:10 1 10 10 100 1 3 5。

S为1000。

直接上代码:

using namespace std;
#include
#define MAX 10000000

int main()
{
	int x,y,z,w,nx,ny,nz,nw;
	cout<<"Please Enter Data:"<>x;
	cout<<"y:";
    cin>>y;
	cout<<"z:";
    cin>>z;
	cout<<"w:";
    cin>>w;
	cout<<"nx:";
    cin>>nx;
	cout<<"ny:";
    cin>>ny;
	cout<<"nz:";
    cin>>nz;
	cout<<"nw:";
    cin>>nw;
	int *A=new int[MAX];
	int *B=new int[MAX];
	int i,sumA=0,sumB=0,S;
	for(i=0;isumB)
        {
            B[k++]=z;
            sumB+=z;
        }
		else
        {
            A[j++]=z;
            sumA+=z;
        }
	}
	for(i=0;isumB)
        {
            B[k++]=w;
            sumB+=w;
        }
		else
        {
            A[j++]=w;
            sumA+=w;
        }
	}
	sumA>sumB?S=sumA:S=sumB;
	cout<

小结:

对w的 *** 作和对z的 *** 作基本类似,可以考虑合并在一步进行 *** 作。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/673985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-19
下一篇2022-04-19

发表评论

登录后才能评论

评论列表(0条)