题目链接:http://bailian.openjudge.cn/practice/2755/
题解:动态规划
递归:边界条件即体积等于v和第n件物品,状态转移方程为加上这个物品和不加上这个物品并转到下一个物品
#include <stdio.h>
#include <iostream>
using namespace std;
int n,v;
int a[30];
int set(int k,int vi){
if(vi==v)return 1;
if(k==n){
return 0;
}
return set(k+1,vi)+set(k+1,vi+a[k]);
}
int main(){
cin>>n;
v=40;
for(int i=0;i<n;i++){
cin>>a[i];
}
cout<<set(0,0)<<endl;
}