公司发礼品,有n件商品价值为a1,a2…an的不同商品(0<=an<=40),其价值各不相同。某员工有总价值200元的商品可以选,问总共有多少种商品搭配。
#include<stdio.h>
#define N 1024
int m,n;
int f[N];//f[j]代表花费j元有多少个方案数
int main(){
printf("请输入商品数:");
scanf("%d",&n);//n件商品
m=200;
f[0]=1;//dp状态初始化,代表当前没有花费
printf("请依此输入商品价格:");
for(int i=0;i<n;i++){
int v;
scanf("%d",&v);
for(int j=v;j<=m;j++)
f[j]+=f[j-v];
}
printf("%d",f[m]);
return 0;
}