問題是打印所有總計爲一個值的子集。我寫了代碼來檢查是否有可能的子集。有人可以給我一個想法來打印構成總和的數字。以下是我的代碼。假設數組僅包含+ 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;
}