在一个数组中取若干个数 看是否能组成对应的数
#include<bits/stdc++.h>
using namespace std;
#define MAXN 220
void display(int num)
{
cout << num << " ";
}
int main()
{
vector<int> v;
freopen("in.txt","r",stdin);
int n,result;
cin >> n >> result;
for(int i = 0 ;i < n;i++)
{
int temp;
cin >> temp;
v.push_back(temp);
}
int a[n+1][result+1];
memset(a,0,sizeof(a));
for(int i =0;i <= n;i++)
a[i][0] = 1;
for(int i = 0;i <=n;i++)
{
for_each(a[i],a[i]+result+1,display);
cout << endl;
}
cout << "初始化:" << endl;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= result;j++)
{
if(j<v[i-1])
a[i][j] = a[i-1][j];
else{
a[i][j] = a[i-1][j]||a[i-1][j-v[i-1]];
}
}
}
for(int i = 0;i <=n;i++)
{
for_each(a[i],a[i]+result+1,display);
cout << endl;
}
}