现输入N,求(S)的子集。
输入格式:
一个整数即N。
输出格式:
输出所有子集,每个子集占一行。
输入样例
5
输出样例
()
(3 )
(2 )
(2 3 )
(1 )
(1 3 )
(1 2 )
(1 2 3 )
代码
#include<iostream>
using namespace std;
int tag[1000];
void Try(int a,int p){
if (p==a+1){
cout << "(";
for (int i = 1; i <= a; i++){
if (tag[i]){
cout << i << " ";
}
}
cout << ")" << endl;
}
else{
tag[p]=0;
Try(a, p + 1);
tag[p]=1;
Try(a, p + 1);
}
}
int main(){
int n;
cin >> n;
Try(n, 1);
return 0;
}
说明
tag数组用于判断是否输出,如1 0 1输出(1 3 )