列出{1,2,,,,n}的所有子集
方法一
using namespace std;
int cnt=0;
void print_set(int n,int *a,int cur)
{
for(int i=0;i<cur;i++)
cout<<a[i]<<" ";
if(cnt) cout<<endl;
cnt++;
int s=cur?a[cur-1]+1:1;
for(int i=s;i<=n;i++){
a[cur]=i;
print_set(n,a,cur+1);
}
}
int main()
{
int a[10];
print_set(3,a,0);
return 0;
}
方法2
void f(int n,int *b,int cur)
{
if(cur==n)
{
for(int i=0;i<n;i++)
if(b[i])
cout<<i+1<<" ";
cout<<endl;
return ;
}
b[cur]=1;
f(n,b,cur+1);
b[cur]=0;
f(n,b,cur+1);
}
int main()
{
int *b;
f(3,b,0);
return 0;
}
列出{1,2,,,,n}的所有子集
最新推荐文章于 2020-01-30 12:15:45 发布