javascript 递归算法:两个数字组合

// 12  ,3,4 两个数字组合 最后结果 应该是

// 13

// 14

// 23

// 24

// 34

// 这5种  用程序  怎么算出来

// 是求组合的算法

// var arr = [12, 3, 4];

// var len = arr.length;

// var result = [];

// for (var i = 0; i < len; i++) {

//
for (var j = i + 1; j < len; j++) {

//
for (var k = 0; k < String(arr[i]).length; k++) {

//
for (var m = 0; m < String(arr[j]).length; m++) {

//
result.push(Number(String(arr[i]).charAt(k)+String(arr[j]).charAt(m)));

//
}

//
}

//
}

// }

// console.log(result);

var arr = [12, 3, 4];

var len = arr.length;

var result = [];

var indexs = {};

function combination(ind, start) {

    start++;

    if (start > 1) {

        return;

    }

    if (!indexs[start]) {

        indexs[start] = 0;

    }

    for (indexs[start] = ind; indexs[start] < len; indexs[start]++) {

        combination(indexs[start] + 1, start);

        if (start == 1) {

            var one = String(arr[indexs[start – 1]]);

            var two = String(arr[indexs[start]]);

            for (var k = 0; k < one.length; k++) {

                for (var m = 0; m < two.length; m++) {

                    result.push(Number(one.charAt(k) + two.charAt(m)));

                }

            }

        }

    }

}

combination(0, -1);

console.log(result);

    原文作者:递归算法
    原文地址: https://blog.csdn.net/lilili123/article/details/21939473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞