这是一个 JavaScript 示例。如果需要,您可以更改序列中的数字。只有匹配时才会记录结果。
var sequence = [4, 10, 4, 7],
tree = []
for (var i=0; i<sequence.length; i++){
tree.push([sequence[i], -sequence[i]])
}
function findMatch(arr, match, numSoFar, path, iterations){
var numSofar1 = numSoFar + arr[iterations][0],
numSofar2 = numSoFar + arr[iterations][1],
path1 = path + (arr[iterations][0] > 0 && iterations > 0 ? "+" : "")
+ String(arr[iterations][0]),
path2 = path + (arr[iterations][1] > 0 && iterations > 0 ? "+" : "")
+ String(arr[iterations][1])
if (numSofar1 == match) console.log(path1)
else if (numSofar2 == match) console.log(path2)
else if (iterations < arr.length-1){
findMatch(arr, match, numSofar1, path1, iterations + 1)
findMatch(arr, match, numSofar2, path2, iterations + 1)
}
}
findMatch(tree, 10, 0, "", 0)