輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。
輸入格式:
n(1≤n≤9)
輸出格式:
由1~n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。
輸入樣例#1:
3
輸出樣例#1:
1 2 31 3 2
2 1 3
2 3 1
3 1 2
3 2 1
第一種:用stl函式庫裡next_permutation(公升序),prev_permutation(降序),標頭檔案:#include
返回值:如果有乙個更高的排列,它重新排列元素,並返回true;如果這是不可能的(因為它已經在最大可能的排列),它按公升序排列重新元素,並返回false。
#include#include#includeusing namespace std;int main()
cout << "\n";
} while (next_permutation(a + 1, a + n + 1));
return 0;
}
第二種:用dfs實現全排列
#include#include#includeusing namespace std;int n, a[10], book[10];//a[i]代表第i個數,book標記用沒用過,0就沒用過
void dfs(int c)
for (int i = 1; i <= n; i++)
} return;
}int main()
洛谷 P1706 全排列問題
題目描述 輸出自然數 11 到 nn 所有不重複的排列,即 nn 的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入格式 乙個整數 nn。輸出格式 由 1 sim n1 n 組成的所有不重複的數字序列,每行乙個序列。每個數字保留 55 個場寬。輸入輸出樣例 輸入 1 複製 3輸出 1 複...
洛谷P1706全排列問題
p1706全排列問題 題目描述 輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入輸出格式 輸入格式 n 1 n 9 輸出格式 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。輸入輸出樣例 輸入樣例 1 3輸出樣例 1 1 2...
洛谷 P1706 全排列
可能是最簡單的題了 講真搜尋hhh 洛谷 輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入格式 n 1 n 9 輸出格式 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。輸入樣例 1 3 輸出樣例 1 1 2 3 1 3 2...