zoukankan      html  css  js  c++  java
  • 比特位串求幂集

    利用比特位串来求幂集合

    //date:2020.4.23
    //利用比特位串来求幂集合
    //比如
    /*
    000 -> j=0 i=0输出空
    001 -> j=0 i=1 输出 a
    010 -> j=1 i=2 输出b
    011 -> j=1 j=0,i=3 输出 ab,一次类推
    100 -> j=2,i=4 输出c
    101 -> j=2,j=0,i=5 输出ac
    110 -> j=2,j=1 i=6 输出 bc
    111 -> j=2,j=1,j=0,i=7 输出abc
    */
    #include <iostream>
    using namespace std;
    void getres(char a[],int i)
    {
        cout<<"{";
        bool douhao=false;//控制逗号的输出
        int j=0;//表示第几个字符
        while(i>0)
        {
            if(i&1) //是1 i&1表示该数的个位与1做与运算,是1,表示是奇数也就是1
            {
                if(douhao)
                    cout<<",";
                cout<<a[j];//输出字符串
                douhao=true;
            }
            i=i>>1;
            j++;//输出第几个字符
        }
        cout<<"}"<<endl;
    }
    int main()
    {
        char a[]= {'a','b','c'};
        int len=1<<sizeof(a)/sizeof(char);//表述要输出的集合数量
        for(int i=0; i<len; i++)
            getres(a,i);
    
        return 0;
    }
    输出结果
    {} {a} {b} {a,b} {c} {a,c} {b,c} {a,b,c}

      

  • 相关阅读:
    python wmi模块 获取windows内部信息
    Django +uwsgi+python3+nginx + mysql 部署
    POJ 1125
    POJ 1129
    POJ 1126
    POJ 1118
    POJ 1102
    POJ 1101
    POJ 1111
    POJ 1088
  • 原文地址:https://www.cnblogs.com/someonezero/p/12761996.html
Copyright © 2011-2022 走看看