关于背包问题

xuxi_dynasty 2002-08-03 04:54:00
不知各位大虾能否详细指点小弟一下,(用递归来完成)
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
矜持的射手 2002-08-03
  • 打赏
  • 举报
回复
我的“背包”不够完善,不过大体思想差不多

#include<iostream.h>
const int N=5;

void func(bool a[],int w[],int k,int c,int n)
{
int sum_quality=0;
if(k==n)
{
for(int i=0;i<n;i++)
{
sum_quality+=w[i]*a[i];
}
if(sum_quality==c)
{
cout<<"(";
for(i=0;i<n;i++)
{
if(a[i])
cout<<w[i]<<" ";
}
cout<<")"<<endl;
}
}
else
{
a[k]=0;
func(a,w,k+1,c,n);
a[k]=1;
func(a,w,k+1,c,n);

}
}
void main()
{
bool a[N];
int w[N],c;
int k=0,n=N;
cout<<"请输入"<<N<<"个背包质量:"<<endl;
for(int i=0;i<N;i++)
{
cin>>w[i];
}
cout<<"请输入总质量:"<<endl;
cin>>c;
cout<<"共有以下背包组合:"<<endl;
func(a,w,k,c,N);
cout<<endl;
}
kbsoft 2002-08-03
  • 打赏
  • 举报
回复
递归,回溯,贪心动态规划都可以完成
JanePeter 2002-08-03
  • 打赏
  • 举报
回复
????

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧