以下是我写的代码

#include <iostream>
#include <algorithm>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void print_set(int n,int *a,int *p,int cur){
    for(int i=0;i<cur;i++) cout<<a[i];
    cout<<endl;
    int s=cur? a[cur-1]+1:1; 
    for(int i=0;i<n;i++){
        if(p[i]<s) continue;
        a[cur]=p[i];
        print_set(n,a,p,cur+1);
    }
} 
int main(int argc, char** argv) {
    int n,a[10],p[10];
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>p[i];
    }
    sort(p,p+n);
    print_set(n,a,p,0);
    return 0;
}

函数里面通过变量S来控制循环,真的是多看别人的优秀代码才能成长

posted on 2017-04-04 20:14  kapike  阅读(46)  评论(0)    收藏  举报