程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++從多n個數中選取m個數的組合,

C++從多n個數中選取m個數的組合,

編輯:C++入門知識

C++從多n個數中選取m個數的組合,


 1 //start 是從哪個開始取, picked代表已經取了多少個數
 2 //process和data是全局變量數組
 3 //語言說明比較難,我舉個例子吧
 4 //從[ 1, 2, 3, 4 ]中選取 2 個數
 5 //然後可以依次得到
 6 //  1 2
 7 //  1 3
 8 //  1 4
 9 //  2 3
10 //  2 4
11 //  3 4
12 void combination(int start, int picked)
13 {
14      if (picked == m) {
15         for (int j = 0; j < m; j++)    //打印出來
16             cout << process[j] << "\t";
17 
18         cout << endl;
19         return ;
20     }
21 
22     int max = n - m + picked;    //選取第x個數時,最大data下標, 例如第一個數時 max = 4 - 2 + 0,
23 
24     for (int i = start; i <= max; i++) {
25         process[picked] = data[i];
26         combination(i+1, picked+1);
27     }
28 }

這方法是根據 http://blog.csdn.net/wumuzi520/article/details/8087501#comments 文章上面的方法一改編的, 覺得組合反過來不太好理解, 所以我寫了個翻版。 這文章上面的方法二是個好方法。大家也可以去學一下。第一次寫博客,寫得不好希望大家見諒。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved