您的位置:首页 > 其它

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

2017-03-19 17:04 211 查看
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;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DFS