数据结构C语言 背包问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:39:32
有一个背包可以放入的物品的总重量为S,现在有n件物品,重量分别为W1,W2,……Wn。问能否从这n件物品中选择若干件放入背包,使得物品重量之和正好等于S。帮我写出程序,C语言的

我写出来你要给我分哦``(绝对不是复制过来的)
/********背包问题*********/
#define MAXSIZE 50
int w[MAXSIZE];/*按照从小到大的顺序存放各物品的重量值*/

int knapsack(int s,int m)
{int s1,b;
if(s==0) return 1;/*成功刚返回1*/
esle if((s<w[1])||m==0) return 0;/*无解*/
else{
do{
s1=w[m];
m--;
b=knapsack(s-s1,m);
}while((m!=0)&&(!b));

if(!b) return 0;
else {
printf("\n%d",s1);
return 1;
}
}
}

/****照书上抄过来的*****/

我这么辛苦,把分给我吧。

数值计算方法的教科书里不是有吗????还来这找。。。。