P1157 組合的輸出

2021-10-20 02:55:14 字數 845 閱讀 8573

排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素(不分順序r≤n),我們可以簡單地將n個元素理解為自然數1,2,…,n從中任取r個數。

現要求你輸出所有組合。

例如n=5,r=3所有組合為:

12 3 , 1 2 4 , 1 2 5 , 1 3 4 ,1 3 5 , 1 4 5 , 2 3 4 , 2 3 5 , 2 4 5 , 3 4 5123,124,125,134,135,145,234,235,245,345

一行兩個自然數n,r(1所有的組合,每乙個組合佔一行且其中的元素按由小到大的順序排列,每個元素佔三個字元的位置,所有的組合也按字典順序。

**注意哦!輸出時,每個數字需要33個場寬,pascal可以這樣:

write(ans:3);

輸入5 3

輸出1 2 3

1 2 4

1 2 5

1 3 4

1 3 5

1 4 5

2 3 4

2 3 5

2 4 5

3 4 5

ac **:

(需要注意的是for迴圈的i不能定義成全域性的變數)

#include

#include

using

namespace std;

int n,r,f[25]

=;void

server

(int k,

int st,

int s)

cout

for(

int i=st;i<=n;i++)}

intmain()

洛谷P1157 組合的輸出

題目描述 排列與組合是常用的數學方法,其中組合就是從 nn 個元素中抽出 rr 個元素 不分順序且 r le n r n 我們可以簡單地將 nn 個元素理解為自然數 1,2,n1,2,n 從中任取 rr 個數。例如 n 5,r 3n 5,r 3 所有組合為 12 3 1 2 4 1 2 5 1 3 ...

洛谷 P1157 組合的輸出

排列與組合是常用的數學方法,其中組合就是從nn個元素中抽出rr個元素 不分順序且r le n r n 我們可以簡單地將nn個元素理解為自然數1,2,n1,2,n,從中任取rr個數。現要求你輸出所有組合。例如n 5,r 3n 5,r 3,所有組合為 12 3 1 2 4 1 2 5 1 3 4 1 3...

P1157 組合的輸出 題解

就是列印出有位數限制的全排列 按照字典序 個人用dfs遞迴做完 但是看了別人的stl做法,對next permutation有了更新的認識。當時想用stl,但是不知道怎麼實現,看了別人的就明白01陣列的妙處了 我的 include using namespace std int a 22 n,r v...