通过dfs求排列

来源:互联网 发布:java程序员怎么认证 编辑:程序博客网 时间:2024/05/16 14:03

#include <stdio.h>#include "stdlib.h"int book[10],a[10],n,t;int comp(const void*a,const void*b){    return *(int*)b-*(int*)a;}void dfs(int num,int time,int m){    int i;    if(m==time)    {        for(i=1;i<=m;i++)            printf("%d ",a[i]);        printf("\n");        return;    }    for(i=1;i<=num;i++)        if(book[i]==0)        {            m++;            a[m]=i;            book[i]=1;            dfs(num,time,m);            book[i]=0;            m--;        }    return;}int main(int argc, const char * argv[]){    scanf("%d %d",&n,&t);    dfs(n,t,0);    return 0;}

0 0
原创粉丝点击