C++问题 求集合的幂集

来源:百度知道 编辑:UC知道 时间:2024/05/07 01:24:27
若S是n个元素的集合,则S的幂集是S的所有可能子集的集合。例如:若S = {a,b,c},则Powerset(S)={{},{a},{b},{c},{a,b}{b,c}{a,c}{a,b,c}} 请给出一个计算幂集Powerset(S)的递归函数。

#include<iostream>
using namespace std;

int powerset(int *s,int m,int n){//假设s是所有元素的集合
if(m > n) return 1;
if(m == -1) cout<<endl;
else{
for(int i=0;i<n-m;i++){
for(int j=i;j<=i+m;j++){ //输出从i 到 i+m 的 s
cout<<s[j]<<" ";
}
cout<<endl;
}
}
powerset(s,m+1,n);
}

int main(){
int n=3,s[3]={1,2,3};
powerset(s,-1,3);
system("pause");
}

有问题,你自己想想吧