http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1089

递归实现的排列组合。

code:

#include<cstdio>
int data[20] ;
int ans[6], n ;
void work(int diex, int aiex){
    int i ;
    if(aiex==6){
        for(i=0; i<5; i++)
            printf("%d ", ans[i]) ;
        printf("%d\n", ans[i]) ;
    return ;
    }
    for(i=diex; i<n; i++){
        ans[aiex] = data[i] ;
        work(i+1, aiex+1) ;
    }
}
int main(){
    int i, j=0 ;
    while(~scanf("%d", &n)&&n){
        if(j)   printf("\n") ;
        j ++ ;
        for(i=0; i<n; i++)
            scanf("%d", &data[i]) ;
        work(00) ;
    }
    return 0 ;} 
posted on 2012-04-11 23:20  追逐.  阅读(173)  评论(0编辑  收藏  举报