您将如何测试一组给定的N,R,S个数字的所有可能组合,以使它们加起来成为给定的最终数字,而您只能从每个集合中使用1个数字?
一个简单的例子:
要添加的数字集:
N = {1,2,3,...}
R = {4,5,6,...}
S = {7,8,9,...}
所需结果:所有加X的数字,因此当 X = 12 时,输出为
[1,4,7]
答案 0 :(得分:0)
使用JavaScript:
var N=[1,2,3];
var R=[4,5,6];
var S=[7,8,9];
function xInNRS(x) {
return N.forEach(n=>R.forEach(r=>S.forEach(s=>{if(n+r+s==x) console.log([n,r,s])})));
}
console.log(12);xInNRS(12);
console.log(13);xInNRS(13);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您还可以存储所有内容,然后测试x或打印x:
var N=[1,2,3];
var R=[4,5,6];
var S=[7,8,9];
var X={};
N.forEach(n=>R.forEach(r=>S.forEach(s=>{
var sum=n+r+s;
if(X[sum]==undefined) X[sum]=[];
X[sum].push([n,r,s]);
})));
console.log("All Xs");
console.log(X);
console.log("Test x");
console.log(9,X[9]!=undefined);
console.log(16,X[16]!=undefined);
console.log("Combinations for x");
console.log(9,X[9]);
console.log(12,X[12]);
console.log(13,X[13]);
.as-console-wrapper { max-height: 100% !important; top: 0; }