子集问题。输出集合{1,2,3,4}的所有子集
共24种
#include <iostream>
using namespace std;
bool B[1000];
int S[1000];
int len;
void printSubset(int cur) {
if(cur == len) {
for(int i = 0; i < cur; i++)
if(B[i]) cout<<S[i]<<" "; //打印当前集合
cout<<endl;
return;
}
B[cur] = 1; //选第cur个元素
printSubset(cur+1);
B[cur] = 0; //不选第cur个元素
printSubset(cur+1);
}
int main(int argc, char** argv) {
cout<<"请输入子集的个数"<<endl;
cin>>len;
cout<<"请输入子集的具体数字"<<endl;
for(int i=0;i<len;i++)
cin>>S[i];
cout<<"代码结果为:"<<endl;
printSubset(0);
return 0;
}
文章参照: https://blog.csdn.net/qq_42835910/article/details/86168237