跳至主要內容

和为S的连续正数序列

微信公众号:储凡2023/2/11小于 1 分钟

和为S的连续正数序列

题目链接

题目描述

刷题思路

代码实现

// 注意是连续递增数列,间距为1 那么可以将序列开始、结束元素看做 a 、 b
// 按照数列求和公式sum=(首项+尾项)* 项数 /2 即可
export function FindContinuousSequence(sum) {
  // 按照sum值,先预估大概最多满足条件的序列
  // sum=(b+a)(b-a+1)/2
  let left = 1
  let right = 2

  const result = []
  while (left < right) {
    // 从left....right的序列求和
    const tempSum = (right + left) * (right - left + 1)
    if (2 * sum === tempSum) {
      // 满足条件
      let count = left
      const tempArr = []
      while (count <= right) {
        tempArr.push(count)
        count++
      }
      result.push(tempArr)
      // 向前寻找
      left++
    }
    else if (2 * sum > tempSum) {
      // 右边向右
      right++
    }
    else {
      // 左边向右
      left++
    }
  }

  return result
}

一些建议

更新日志

2024/7/28 10:06
查看所有更新日志
  • c0f2d-refactor: 升级vuepress相关版本,优化项目结构 (#137)
  • 06596-feat: 算法相关文档新增固定链接,优化导入代码配置
  • 9b9e4-feat: 算法相关文档更新,删除讨论链接 (#88)
  • b0275-feat(markdownlint-cli): 添加markdown文档校验,支持lint脚本自动格式化文档
  • 5f1e1-feat: 导航栏、侧边栏内容修改,新增目录对应的文档
  • 02ab1-style: 文档目录调整,修改mdEnhance配置
  • 8de1a-feat: 剑指算法文档更新,修改目录结构
  • d0347-docs(algorithm): 新增模版格式
  • 74e84-docs(algorithm): 新增一些文档
  • ced18-docs: 更新一些文档,优化导航栏
  • a23ce-refactor: 新增manuscript目录,优化文稿结构
  • e34c0-style(code): 代码风格eslint格式化,新增部分文档
  • 74aa9-docs(algorithm): 新增一些文档
  • 3c22c-refactor: 新增Eslint配置,修改相关代码风格
  • 9bbe9-feat: 修改导航栏结构,添加文档
  • e4c74-feat: 新增算法源码
贡献者: chu fan,Chu Fan,chufan,142vip.cn,chufan443