#include<iostream> using namespace std; int store[100]; int n; void subset(int cur,int s,int cnt){ //cnt表示子集元素的个数 if(cur==cnt){ for(int i=0;i<cur;i++){ cout<<store[i]<<" "; } cout<<endl; } else{ for(int i=s;i<=n;i++){ //s—n中选取一个元素放入store中 store[cur]=i; subset(cur+1,i+1,cnt); } } } int main(){ while(cin>>n){ for(int i=1;i<=n;i++){ //i代表子集元素个数,比如当i=1 表示 当子集元素只有一个的情况。 subset(0,1,i); } } }