生成子集——位向量法

2019-04-14 09:04发布

class="markdown_views prism-tomorrow-night">

生成0~n序列的子集

对于0~n的每一个值在集合中都有存在和不存在两种状态,所以递归每个值的存在状态即可生成子集 #include #include #include #include #include using namespace std; void sutset(int n,int *b,int cur){ if(cur==n){ for(int i=0;iif(b[i])printf("%d ",i); } printf(" "); }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); }