子集生成

来源:互联网 发布:sql合并相同行 编辑:程序博客网 时间:2024/05/21 21:46

题意:给出一个数组输出所有子集

代码:

#include <iostream>using namespace std;int a[5]={1,3,5,7,8};int main(){    int i,j,k;    for(i=0;i<(1<<5);i++){      //一共有2的n次幂种情况,每一种情况    j=i;k=0;                    //所对应的2进制数一定不相同,将二进    while(j){                   //制的1视为选中这个数,0视为不选,因    if(1&j)cout<<a[k]<<" ";     //因此将二进制的j一位一位向右移动并判    j>>=1;k++;                  //断是否输出    }    if(i!=0)                    //避免一上来就出现空行的情况    cout<<endl;    }    return 0;}

0 0