4070 全排列
Posted Reqaw’s Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4070 全排列相关的知识,希望对你有一定的参考价值。
题目来源:
http://bailian.openjudge.cn/practice/4070/
描述
对于数组[1, 2, 3],他们按照从小到大的全排列是
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
现在给你一个正整数n,n小于8,输出数组[1, 2, …,n]的从小到大的全排列。
输入
输入有多行,每行一个整数。当输入0时结束输入。
输出
对于每组输入,输出该组的全排列。每一行是一种可能的排列,共n个整数,每个整数用一个空格隔开,每行末尾没有空格。
样例输入
2
3
0
样例输出
1 2
2 1
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
题意描述:
输入一个正整数n(小于8)
输出1到n的所有全排列方案
解题思路:
意即求n个位置放n个数的所有方案
程序代码:
1 #include<stdio.h>
2 int r[10],u[10];
3 void dfs(int n,int x);
4 int main()
5 {
6 int n,i;
7 while(scanf("%d",&n),n!=0)
8 {
9 dfs(n,1);
10 }
11 return 0;
12 }
13 void dfs(int n,int x)
14 {
15 int i;
16 if(n+1==x)
17 {
18 for(i=1;i<n;i++)
19 printf("%d ",r[i]);
20 printf("%d\n",r[n]);
21 return;
22 }
23 for(i=1;i<=n;i++)
24 {
25 if(!u[i])
26 {
27 r[x]=i;
28 u[i]=1;
29 dfs(n,x+1);
30
31 u[i]=0;
32 }
33 }
34 }
以上是关于4070 全排列的主要内容,如果未能解决你的问题,请参考以下文章
html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma