生成子集——位向量法

来源:互联网 发布:淘宝出售可非大力小泰 编辑:程序博客网 时间:2024/06/05 14:51

生成0~n序列的子集

对于0~n的每一个值在集合中都有存在和不存在两种状态,所以递归每个值的存在状态即可生成子集

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<algorithm>using namespace std;void sutset(int n,int *b,int cur){     if(cur==n){        for(int i=0;i<n;i++){            if(b[i])printf("%d ",i);        }        printf("\n");     }else{        b[cur]=1;//cur位置上的值存在        sutset(n,b,cur+1);        b[cur]=0;//cur位置上的值不存在        sutset(n,b,cur+1);      }}int main(){    int b[4];    sutset(4,b,0);}
0 0