拿了一件物品 就将物品的价值加上 不拿 就继续往下面找 DFS的思想
public class beibao{
private int[] w;
private int[] s;
public b(int sum, int index){
if(sum>0 || sum<0 && index>=w.length){
return null;
}
if(sum == 0){
for(int i = 0 ; i < index;i++)
{
if(s[i] == true){
System.out.print(w[index]+" ");
}
}
System.out.println();
return ;
}
//选上了 往下一个查看
s[index] = true;
b(sum-w[index],index+1);
//不选 往下一个查看
s[index] = false;
b(sum,index+1);
}
public static void main(String[] args){
int a[] = {12,3,56,5};
int sum = 68;
beibao k = new beibao(a);
k.b(total, 0);
}
}