#include <bits/stdc++.h>
using namespace std;
vector<vector<int> >ps;
void Insert(int i) {
vector<vector<int> >ps1;
vector<vector<int> >::iterator it;
ps1 = ps; //ps1存放原来的幂集
for(it = ps1.begin(); it != ps1.end(); it++) {
(*it).push_back(i); //在ps1的每个集合元素末尾添加i
}
for(it = ps1.begin(); it != ps1.end(); it++) {
ps.push_back(*it); //将ps1的每个集合元素添加到ps中
}
}
void Pset(int i, int n) {
if(i <= n) {
Insert(i); //将i插入到现有子集中产生新子集
Pset(i + 1, n);
}
}
void disps() {
vector<vector<int> >::iterator it;
vector<int>::iterator sit;
for(it = ps.begin(); it != ps.end(); it++) { // 遍历每个集合
cout << "{";
for(sit = (*it).begin(); sit != (*it).end(); sit++) { // 遍历每个集合中的元素
cout << *sit;
}
cout << "}";
}
cout << endl;
}
int main() {
vector<int> s;
ps.push_back(s);
int n = 3;
Pset(1, n);
disps();
}
4.3.1用递归方法求解幂级问题
最新推荐文章于 2022-12-17 16:35:52 发布