我输入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);
}