按位运算大法!!
1 #include<iostream> 2 using namespace std; 3 4 int a[100]; 5 int n; 6 void subset(){ 7 for(int i=1;i<=(1<<n);i++){ 8 for(int j=0;j<n;j++){ 9 if(i&(1<<j)){ //按位与,左位移 10 cout<<a[j]<<" "; 11 } 12 } 13 cout<<endl; 14 } 15 } 16 17 int main(){ 18 while(cin>>n){ 19 for(int i=0;i<n;i++){ 20 cin>>a[i]; 21 } 22 subset(); 23 } 24 }
本文介绍了一种使用按位运算来生成集合所有子集的方法。通过C++代码实现,利用位运算特性,特别是按位与和左移操作,高效地生成并打印出输入集合的所有可能子集。
933

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



