5-4 输出全排列 (20分)——DFS

来源:互联网 发布:算法交易是量化 编辑:程序博客网 时间:2024/04/30 13:15

PTA原题链接

以下为建议参考代码

#include <stdio.h>#include <string.h>int vid[14], ans[14], n;void DFS(int step);int main(){    while(scanf("%d", &n) != EOF)    {        memset(vid, 0, sizeof(vid));        DFS(1);    }    return 0;}void DFS(int step){    int i;    if(step == n+1)    {        for(i = 1; i <= n; i++)            printf("%d", ans[i]);        printf("\n");        return;    }    else    {        for(i = 1; i <= n; i++)        {            if(vid[i] == 0)            {                ans[step] = i;                vid[i] = 1;                DFS(step+1);                vid[i] = 0;            }        }    }}
0 0