遞迴入門 組合的輸出

2021-08-04 08:43:43 字數 696 閱讀 2852

時間限制: 1 sec  

記憶體限制: 128 mb

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

現要求你用遞迴的方法輸出所有組合。 

例如n = 5 ,r = 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 

一行兩個自然數n、r ( 1 < n < 21,1 < = r < = n )。

所有的組合,每乙個組合佔一行且其中的元素按由小到大的順序排列,所有的組合也按字典順序。

#includebool book[30];

int n,r,order[30],cnt;

void dfs(int cur);

void show();

int main()

void dfs(int cur)

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

{ if(i>n-(r-cur-1))

return ;

if(book[i]==false&&(cur==0||order[cur-1]

遞迴入門 組合的輸出

時間限制 1 sec 記憶體限制 128 mb 提交 132 解決 74 題目描述 排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你不用遞迴的方法輸出所有組合。例如n 5 r 3 所有組合為 ...

遞迴入門 組合的輸出

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

遞迴入門 組合的輸出

命題人 外部匯入 時間限制 1.000 sec 記憶體限制 128 mb 解決 1303 提交 2294統計 題目描述 排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你不用遞迴的方法輸出所有組...