C++从多n个数中选取m个数的组合
Wednesday, September 16, 2020
8:28 AM
C++从多n个数中选取m个数的组合
Linyee 2015-12-25 原文
- //start 是从哪个开始取, picked代表已经取了多少个数
- //process和data是全局变量数组
- //语言说明比较难,我举个例子吧
- //从[ 1, 2, 3, 4 ]中选取 2 个数
- //然后可以依次得到
- // 1 2
- // 1 3
- // 1 4
- // 2 3
- // 2 4
- // 3 4
- void combination(int start, int picked)
- {
- if (picked == m) {
- for (int j = ; j < m; j++) //打印出来
- cout << process[j] << “\t”;
- cout << endl;
- return ;
- }
- int max = n - m + picked; //选取第x个数时,最大data下标, 例如第一个数时 max = 4 - 2 + 0,
- for (int i = start; i <= max; i++) {
- process[picked] = data[i];
- combination(i+, picked+);
- }
- }
已使用 Microsoft OneNote 2016 创建。
