二进制枚举子集

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
    int n, s[50] = {0};
    scanf("%d", &n);
    for(int i=0;i<n;i++)
	 scanf("%d", &s[i]);
    for(int i = 0; i < (1 << n); ++i) {
        for(int j = 0; j < n; ++j)
            if(i & (1 << j)) printf("%d ", s[j]);
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40093905/article/details/80054041