中易网

怎么在把物品放进背包的时候选择数量

答案:1  悬赏:0  
解决时间 2021-01-15 09:01
  • 提问者网友:川水往事
  • 2021-01-14 09:34
怎么在把物品放进背包的时候选择数量
最佳答案
  • 二级知识专家网友:一叶十三刺
  • 2021-01-14 09:45
#includelt;stdio.hgt;
#includelt;conio.hgt;

#define max 100

int n=0,mon[max]={0},hev[max]={0},hmax=0;
int nowh=0,nowm=0;
int mmax=0;
int as[max]={0};
int asmax[max]={0};
int stmax=0;
int st=-1;
void print();
void fun(int p);
void print()
{
printf(quot;有以下物品#92;nquot;);
for(int i=0;ilt;stmax+1;i++)
printf(quot;物品%d quot;,asmax[i]+1);
printf(quot;一共价值为:%dquot;,mmax);
}

void fun(int p)
{
if(p==n)
{
if(nowmgt;=mmax)
{
for(int i=0;ilt;st+1;i++)
asmax[i]=as[i];
stmax=st;
mmax=nowm;
}return;
}
if(nowh+hev[p]lt;=hmax)
{
fun(p+1);
st++;
as[st]=p;
nowh+=hev[p];
nowm+=mon[p];
fun(p+1);
nowh-=hev[p];
nowm-=mon[p];
st--;
}
else
fun(p+1);
}

int main()
{
printf(quot;求解背包问题#92;nquot;);
printf(quot;请用户输入物品数量:quot;);
scanf(quot;%dquot;,n);
for(int i=0;ilt;n;i++)
{
printf(quot;第%d个物品的价钱:quot;,i+1);
scanf(quot;%dquot;,mon[i]);
printf(quot;第%d个物品的体积:quot;,i+1);
scanf(quot;%dquot;,hev[i]);
printf(quot;#92;nquot;);
}
printf(quot;请输入体积限制:quot;);
scanf(quot;%dquot;,hmax);
fun(0);
print();
_getch();
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息