子集生成 -- 二进制法

来源:互联网 发布:2016年双十一销售数据 编辑:程序博客网 时间:2024/06/11 09:49
#include<iostream>
using namespace std;


void print_subset(int n, int s)        //打印{0,1....n-1}的子集S
{
    static int count = 1;
    cout << "第"<<count++<<"个子集是: ";
    for(int i = 0; i < n; i++)    
    {
        if(s&(1<<i))
            cout << i <<' ';
    }
    cout << endl;
}

int main()
{
    int n;
    cout << "请输入一个整数: ";
    cin >> n;
    cout << n << "的自己如下: \n";
    for(int i = 0; i < (1<<n); i++)
    {
        print_subset(n,i);
    }    

}




0 0
原创粉丝点击