a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

基于集合的子集與集合的全排列的相關問題

2020-01-24 03:22:39
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#include<iostream>
using namespace std;
//非遞歸求解所有的子集
void fun(int a[] , int n)
{
    int i = 0 , j ;
    while(i < (1<<n)) //2的n次方
    {
        for(j = 0 ; j < n ; j ++)
        {
            if(i&(1<<j))
            {
                cout<<a[j]<<"/t";
            }
        }
        cout<<endl;
        i++;
    }
}
//遞歸求解所有的子集
void print(int a[],bool flag[],int k,int length)
{
    if(k>=length)
    {
        for(int i=0;i<length;i++)
        {
            if(flag[i]) cout<<a[i]<<"/t";
        }
        cout<<endl;
        return ;
    }
    for(int j=0;j<2;j++)
    {
        if(j==0)
        {
            flag[k]=true;
            print(a,flag,k+1,length);
            flag[k]=false;
        }
        else
        {
            flag[k]=false;
            print(a,flag,k+1,length);
            flag[k]=true;
        }
    }
}
//集合的全排列算法
void Perm(int list[], int k ,int length)
{
    if(k>=length)
    {
        for(int i=0;i<length;i++)
            cout<<list[i]<<"/t";
        cout<<endl;
        return ;
    }

    for( int j=k;j<length;j++)
    {
        swap(list[k],list[j]);
        Perm(list,k+1,length);
        swap(list[k],list[j]);
    }
}


int main()
{
    int list[]={1,2,3,4};
    bool flag[]={false,false,false,false};
    fun(list,4);
    print(list,flag,0,4);
    Perm(list,0,4);
    return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一本色道久久综合亚洲精品高清 | 精品1区2区| 亚洲欧美日本在线 | 超碰超碰97 | 亚洲精品成人av | 国产乱码精品一区二区三区忘忧草 | 黄页网站在线免费观看 | 激情毛片| 三级视频在线 | 国产精品欧美一区二区三区 | 欧美日韩视频在线观看一区 | 中文字幕日韩一区二区不卡 | 成人日韩 | 久久免费福利视频 | 成人免费视屏 | 亚洲欧美日韩国产综合 | 91精品久久久久久久久久入口 | 国产精品久久久久久久久久久新郎 | 欧美日韩国产在线看 | 免费h视频| 日韩三级电影视频 | 午夜视频在线观看网站 | 国产在线高清 | 国产精品一区久久久久 | 亚洲视频免费在线 | 欧美日韩在线视频观看 | 日韩经典一区 | av在线国产精品 | 国产激情偷乱视频一区二区三区 | 久久亚洲国产 | 久久91av| 热久久久| 国产一区二区在线电影 | 古风h啪肉1v1摄政王 | 激情999| 午夜高清视频在线观看 | 久久草在线视频 | 一级篇| 日本免费三片免费观看 | 国产在线精品二区 | 日韩一区中文字幕 |