数组的子集
输入一个数组,求这串数字的子集
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int sr[100];//定义一个数组
bool se[100];//定义一个bool数组来判断是否将父节点输出
int n;//数组长度
void str(int i)
{
if (i >= n)
{
int flag=0;//定义flag用来输出空集
for (int j = 0; j < n; j++)
{
if (se[j])
{
cout << sr[j]<<" ",flag=1;
}
}
if(!flag){
cout<<"空";//输出空集
}
cout << endl;
}
else//开始递归
{
se[i] = 1; //左子树
str(i + 1);
se[i] = 0; //右子树
str(i + 1);
}
}
int main()
{
cin >> n;//输入数组长度
for (int i = 0; i < n; i++)
{
cin >> sr[i];//循环输入数组数值
}
str(0);//开始函数执行
}