#include <iostream>
//算法框架二
using namespace std;
int s[4]={3,5,7,9};
int x[4];//记录元素状态
int N=4;
int count=0;
void print(){
count++;
for(int j=0;j<N;j++)
{
if(x[j]==1)//如果取了第i个元素
cout<<s[j]<<" ";
}
cout<<endl;
}
void SubSet(int i){
if(i>=N)//所有元素状态都定下来了
{
print();
return ;
}
x[i]=1;//取第i个元素或者搜索右子树
SubSet(i+1);
x[i]=0;//不取第i个元素或者搜索左子树
SubSet(i+1);
}
int main() {
cout<<"子集合为:"<<endl;
SubSet(0);
cout<<"集合数为:"<<count<<endl;
return 0;
}
回溯-子集问题
最新推荐文章于 2023-05-04 18:25:07 发布