题解 | #和为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
};
全部评论

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
10-10 16:30
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务