n个元素c ++的所有可能的k组合

时间:2015-10-13 15:21:02

标签: c++ combinatorics

我输入k和n(0≤k≤n)。对于输入(2 3),我希望此代码生成输出: 0 1

0 2

1 2

但是我只得到0 1.如何解决这个问题?

谢谢。

void comb(int N, int K)
{
    std::string bitmask(K, 1);
    bitmask.resize(N, 0);

    do {
        for (int i = 0; i < N; ++i)
        {
            if (bitmask[i]) std::cout << " " << i;
        }
        std::cout << std::endl;
    } while (std::prev_permutation(bitmask.begin(), bitmask.end()));
}

int main()
{
    int n;
    int k;
    cin >> n >> k;
    comb(n, k);
}

0 个答案:

没有答案