C P1706 全排列問題

2021-08-28 09:07:10 字數 552 閱讀 6668

這個題的有趣之處在於:

如果我們排列確定數量的數字的話,那麼我們只要寫對應數量的for迴圈就好了。

但是這個數量是不確定的。

因為排列數字的數量不確定,所以我們可以用一些特殊的方法來寫不確定數量的for迴圈。

比如:

void xunhuan(int value)

for(int i=1;i<=n;i++

}//呼叫時:xunhuan(3)即可迴圈3次

下面是ac**:

#include#includeusing namespace std;

int n,data[101];

bool mark[101];

void print()

cout<>n;

dfs(0);

}

可以把乙個dfs方法的呼叫認為成乙個for迴圈體,也就是說,我們通過在dfs方法內呼叫dfs方法本身,製作了不限量的for迴圈。然後用for迴圈的方式理解即可。

題目(洛谷):

P1706 全排列問題

輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。n 1 n 9 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個場寬。輸入 1複製 3輸出 1複製 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 include...

P1706 全排列問題

輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。n 1 n 9 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個場寬。輸入 1 複製 3輸出 1 複製 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 題意 在1...

洛谷 1706 全排列問題

輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入格式 n 1 n 9 輸出格式 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。輸入樣例 1 複製3 輸出樣例 1 複製1 2 3 1 3 2 2 1 3 2 3 1 3 1 ...