美文网首页
把一个数分解为任意几个数之和(JavaScript)

把一个数分解为任意几个数之和(JavaScript)

作者: LastStranger | 来源:发表于2021-07-12 15:16 被阅读0次
// 2 11
// 3 21 111
// 4 31 22 211 1111
// 5 41 32 311 221 2111 11111
// 6 51 42 411 33 321 3111 222 2211 21111 111111
function dd(n) { // 返回n的所有集合
  if (n === 2) {
    return [[1, 1]]
  }
  const arr = [];
  for (let i = 1; i < n; i++) {
    if (i <= n / 2) {
      arr.push([n - i, i])
    }
    for (const each of dd(i)) {
      if (num - i >= each[0]) {
        arr.push([num-i, ...each])
      }
    }
  }
  return arr;
}

分析: 就是不断的分解过程, 拿6来举例, 6分解为5+1, 然后4 + 2, 其中2可以继续分解, 然后 3+ 3, 其中 3可以继续分解, 到这里就不在分解,因为会重复, 所以6的分解就变成了"1的所有分解集合每个加上5, 2的所有分解集合加上4, 3的所有分解集合加上3". 注意一点,数据排序一定是从大到小排列,

2021.10.25

太菜了,写了那么长时间,耗了大半年时间,还特意写了一篇文章巩固印象,结果几个月后还是卡住了,

I believe your apartment is on fire

相关文章

  • 把一个数分解为任意几个数之和(JavaScript)

    分析: 就是不断的分解过程, 拿6来举例, 6分解为5+1, 然后4 + 2, 其中2可以继续分解, 然后 3+ ...

  • 趣味数学:各位数字之和是6的倍数

    各位数字之和是6的倍数 任意 个连续自然数中,若必有一个数的各位数字之和是 的倍数,那么 最小是几? 【解析...

  • 2018-acmicpc-南京 J-Prime Game

    题意 给定n个数,求出任意一段连续的数之间,不同质因子个数之和。https://codeforces.com/gy...

  • 前端 javascript 练习题

    前端 javascript 练习题 函数 1.编写任意个数字的求和、差、积、商的函数 思路分析:首先求任意个数,因...

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

  • CodeFoeces-940A

    题目 原题链接:A. Points on the line 题意 给出n个数字,去掉任意个数字保证任意两个数字的差...

  • 1.一道小学生编程题

    1.从1到9中任意组成三个三位数 (每个数只可以用一次),且两个数之和等于第三个数. 思路:最简单当然是枚举法.利...

  • 两个数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被...

  • 求俩个数之和

    原题: Given an array of integers, return indices of the two...

  • 求三个数和为0

    题目描述: 给定一个数组,要求在这个数组中找出 3 个数之和为 0 的所有组合。 Example: 算法思路 使用...

网友评论

      本文标题:把一个数分解为任意几个数之和(JavaScript)

      本文链接:https://www.haomeiwen.com/subject/iagrpltx.html