方法一:增量构造法
#include<cstdio>
#include<iostream>
using namespace std;
void print(int n,int *a,int cur){
printf("(");
for(inti=0;i<cur;i++)
printf("%d",a[i]);
puts(")");
intm=cur?a[cur-1]+1:0;//避免cur==0时程序崩溃
for(inti=m;i<n;i++){
a[cur]=i;
print(n,a,cur+1);
}
}
int main(){
inta[10000]={0};
intn;
cin>>n;
print(n,a,0);
return0;
}
方法二:位向量法