编程语言
首页 > 编程语言> > c++递归求子集

c++递归求子集

作者:互联网

#include <iostream>
 
using namespace std;
 
//作为全局变量
char set[] = {'a', 'b', 'c', 'd'};
bool isVisited[4] = {false};
int size = 4;
 
 
void getAllSubset(int depth)
{
    if (depth == size)//如果遍历完全集,打印出所有被标记为true的元素
    {
        for (int i = 0; i < size; i++)
        {
            if (isVisited[i])
                cout << set[i];
        }
        cout << endl;
    }
    else
    {
        isVisited[depth] = true;
        getAllSubset(depth+1);//寻找下一个元素
        isVisited[depth] = false;
        getAllSubset(depth+1);
    }
}
 
int main()
{
 
    getAllSubset(0);
 
    cin.get();
    return 0;
}

 

 

 

标签:set,false,递归,int,c++,depth,子集,isVisited,size
来源: https://blog.51cto.com/u_11949039/2852395