子集生成 二进制法

来源:互联网 发布:贴片机编程 编辑:程序博客网 时间:2024/06/11 23:44

个人感觉这个方法是最巧妙,也是最简单的。

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;void dfs(int n,int s){    for(int i=0;i<n;i++){        if(s&(1<<i)) printf("%d ",i+1);    }    printf("\n");}int main(){    int n;    scanf("%d",&n);    for(int i=0;i<(1<<n);i++)        dfs(n,i);    return 0;}



0 0