C++从多n个数中选取m个数的组合
    Wednesday, September 16, 2020
    8:28 AM
    C++从多n个数中选取m个数的组合
    Linyee 2015-12-25 原文

    1. //start 是从哪个开始取, picked代表已经取了多少个数
    1. //process和data是全局变量数组
    1. //语言说明比较难,我举个例子吧
    1. //从[ 1, 2, 3, 4 ]中选取 2 个数
    1. //然后可以依次得到
    1. // 1 2
    1. // 1 3
    1. // 1 4
    1. // 2 3
    1. // 2 4
    1. // 3 4
    1. void combination(int start, int picked)
    1. {
    1. if (picked == m) {
    1. for (int j = ; j < m; j++) //打印出来
    1. cout << process[j] << “\t”;
    1. cout << endl;
    1. return ;
    1. }
    1. int max = n - m + picked; //选取第x个数时,最大data下标, 例如第一个数时 max = 4 - 2 + 0,
    1. for (int i = start; i <= max; i++) {
    1. process[picked] = data[i];
    1. combination(i+, picked+);
    1. }
    1. }

    已使用 Microsoft OneNote 2016 创建。