题解 | #和为S的连续正数序列#
递归解题
function FindContinuousSequence(sum) {
// write code here
let res = []
let layer = []
for (let i = 1; i <= Math.floor(sum / 2); i++) {
recursion(i)
console.log(1);
//回溯
layer = []
}
console.log(res);
return res
//求和函数
function add(arr) {
let sum = 0
for (let item of arr) {
sum += item
}
return sum
}
//递归函数
function recursion(num) {
layer.push(num)
if (add(layer) > sum) {
return
}
if (add(layer) == sum) {
res.push([...layer])
return
}
return recursion(num + 1)
}
}
// FindContinuousSequence(9)
module.exports = {
FindContinuousSequence: FindContinuousSequence
};