bitset<10>bit;
void print_set(int n , int k){ // n表示总位数,k表示1的位数
for(int i = 0;i < (1 << n);i ++){
int num = 0,kk = i;
while(kk) kk = kk & (kk - 1) , num ++;
if(num == k){
for(int j = 0;j < n;j ++)
if(i & (1 << j)) bit[j] = 1;
cout << bit << endl;
}
bit.reset();
}
}
//int n , k;
//cin >> n >> k;
//print_set(n ,k);
二进制枚举
最新推荐文章于 2025-12-19 15:31:04 发布
本文介绍了一个C++程序片段,该程序能够打印出特定长度且包含指定数量的'1'的所有位集合。通过使用位操作和bitset类,实现了对于任意给定的n和k,输出所有可能的组合。
299

被折叠的 条评论
为什么被折叠?



