题目:
样例:
代码:
#include<stdio.h>
int ob[25];
int bag(int w,int k){//从前k个物品中选出总体积为w的物体;
if(w==0){//拿出的物体刚好重w
return 1;
}
if(k<=0){//拿失败
return 0;
}
return bag(w,k-1)+bag(w-ob[k],k-1);//拿走当前物品和不拿走两种情况
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++){//这里注意是1到n
scanf("%d",&ob[i]);
}
int t=bag(40,n);
printf("%d\n",t);
}
return 0;
}