


void packageProb(int packageCap,int valueSum,int *productWeight,int *productValue,int *flag,int Len){int i;std::cout<<valueSum<<std::endl;for(i=0;i<Len; i++){int flag_f[3]={0};int packageC=packageCap;int valueS=valueSum;for(int j=0;j<3; j++){flag_f[j]=flag[j];}if(packageC>=productWeight[i]&&!flag[i]){int packageCC=packageCap-productWeight[i];int valueSS=valueS+productValue[i];flag_f[i]=1;for(int i=0;i<Len; i++){if(flag_f[i])std::cout<<i<<std::endl;}std::cout<<valueSS<<std::endl;std::cout<<std::endl;packageProb(packageCC,valueSS,productWeight,productValue,flag_f,Len);}}}
int productWeight[3]={10,20,30};int productValue[3]={60,100,120};int flag[3]={0};packageProb(50,0,productWeight,productValue,flag,3);
原文:http://www.cnblogs.com/yml435/p/4655575.html