洛谷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 } 
全排列問題
相關文章
相關標籤/搜索