洛谷P1706 全排列问题

题目描述

输出天然数1到n全部不重复的排列,即n的全排列,要求所产生的任一数字序列中不容许出现重复的数字。ios

输入输出格式

输入格式:ide

n(1≤n≤9)spa

输出格式:code

由1~n组成的全部不重复的数字序列,每行一个序列。每一个数字保留5个常宽。blog

输入输出样例

输入样例#1:io

3class

输出样例#1:stream

 

    1    2    3
    1    3    2
    2    1    3
    2    3    1
    3    1    2
    3    2    1sed

 

代码以下:

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int n, book[1010], st[1010];
 5 void dfs(int u){
 6     if(u == n){
 7         for(int i = 0; i < n; i++)    printf("%5d", st[i]);
 8         printf("\n");
 9     }
10     for(int i = 1; i <= n; i++){
11         if(!book[i]){
12             book[i] = 1;
13             st[u] = i;
14             dfs(u + 1);
15             book[i] = 0;
16         }
17     }
18 }
19 int main(){
20     scanf("%d", &n);
21     dfs(0);
22     return 0;
23 } 
全排列问题
相关文章
相关标签/搜索