#include<bits/stdc++.h>
using namespace std ;
#define lowbit(x) x&(-x) ;
void bl(int n , int s){// 2 3
for(int i=0;i<n;i++){
if((s>>i)&1){//i在s中
// 处理i的逻辑
cout << i << endl ; // 第i位是1
}
}
}
void mj(int n){// 遍历所有集合
for(int s=0;s<(1<<n);s++){
cout << s << endl ;
}
}
void getSum(int s){//从大到小枚举S的所有非空子集
for(int sub=s;sub;sub=(sub-1)&s){
cout << sub << endl ;
}
}
int main(){
// int n , s ; cin >> n >> s ;
// bl(n , s) ;
// int n ; cin >> n;
// mj(n) ;
int s ; cin >> s ;
getSum(s) ;
}
c++关于二进制枚举
最新推荐文章于 2024-04-08 11:22:36 发布