问题是打印所有总计为一个值的子集。我写了代码来检查是否有可能的子集。有人可以给我一个想法来打印构成总和的数字。以下是我的代码。假设数组仅包含+ ve nos以简化操作。SubsetSum打印列表
void subsetsum(int A[], int target) {
int N = sizeof(A)/sizeof(int), sum = 0;
for(int i = 0; i < N; i++) sum += A[i];
vector<bool> V(sum + 1, 0);
V[0] = 1;
for(int i = 0; i < N; i++)
for(int j = sum; j >= 0; j--) {
if(j + A[i] <= sum && V[j]) V[A[i] + j] = 1;
}
if(V[target]) cout << "Sumbset sum exists" << endl;
else cout << "Sumbset sum doesnt exist" << endl;
}