您的位置:首页 > 其它

列出{1,2,,,,n}的所有子集

2016-05-12 20:55 351 查看
列出{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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: