/**/
/*
{1, 2, 3}的幂集为:
{1, 2, 3} {1, 2} {1, 3} {2, 3} {1} {2} {3} Φ
*/
#include < vector >
#include < stdlib.h >
#include < iostream >
using namespace std;
void get_powerset( int i, vector < int > A,vector < int >& B)
... {
int x;
if (i>A.size()-1)
...{
if (!B.empty())
...{
cout<<"{ ";
for (vector<int>::iterator it=B.begin();it!=B.end();it++)
...{
if (it!=B.end()-1) cout<<*it<<", ";
else cout<<*it<<" ";
}
cout<<"}"<<endl;
}
else cout<<"Φ"<<endl;
}
else
...{
x=A[i];
B.push_back(x);get_powerset(i+1,A,B);
B.pop_back();get_powerset(i+1,A,B);
}
}
int main()
... {
int a[]=...{1,2,3};
vector<int> ivec1(a,a+3);
vector<int> ivec2;
get_powerset(0,ivec1,ivec2);
system("pause");
}
{1, 2, 3}的幂集为:
{1, 2, 3} {1, 2} {1, 3} {2, 3} {1} {2} {3} Φ
*/
#include < vector >
#include < stdlib.h >
#include < iostream >
using namespace std;
void get_powerset( int i, vector < int > A,vector < int >& B)
... {
int x;
if (i>A.size()-1)
...{
if (!B.empty())
...{
cout<<"{ ";
for (vector<int>::iterator it=B.begin();it!=B.end();it++)
...{
if (it!=B.end()-1) cout<<*it<<", ";
else cout<<*it<<" ";
}
cout<<"}"<<endl;
}
else cout<<"Φ"<<endl;
}
else
...{
x=A[i];
B.push_back(x);get_powerset(i+1,A,B);
B.pop_back();get_powerset(i+1,A,B);
}
}
int main()
... {
int a[]=...{1,2,3};
vector<int> ivec1(a,a+3);
vector<int> ivec2;
get_powerset(0,ivec1,ivec2);
system("pause");
}