dfs全排列

来源:互联网 发布:数据分析师招聘 编辑:程序博客网 时间:2024/05/11 12:34
#include<stdio.h>#include<string.h>#include<math.h>#define maxn=1000;int a[maxn],book[maxn],n,ans=0;void dfs(int step){int i;if(step==n+1)    {        for(i=1;i<=n;i++)            printf("%d ",a[i]);        printf("\n");        ans++;        return ;    }    for(i=1;i<=n;i++){        if(book[i]==0){            a[step]=i;            book[i]=1;            dfs(step+1);            book[i]=0;        }    }}int main(){    memset(book,0,sizeof(book));    memset(a,0,sizeof(a));    scanf("%d",&n);    int j=1;    dfs(j);    printf("\n%d\n",ans);    return 0;}

0 0