输入
输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的
数目。接下来的n行,每行有一个1到40之间的正整数,分别
给出a 1 ,a 2 ……a n 的值。
输出
输出不同的选择物品的方式的数目。
输入样例
3
20
20
20
输出样例
3
62
枚举每个物品是选还是不选,共2 20 种情况
枚举的解法
#include<stdio.h> int a[100]; int n; int total[100]={0}; int f(int m,int k) { if(m==0) { return 1; } if(k>=n) { return 0; } return total[k]=f(m,k+1)+f(m-a[k],k+1); } int main() { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } printf("%d",f(40,0)); for(int i=0;i<n;i++) { printf("%d",total[i]); } return 0; }