获取一组数字加起来组成一个数字

时间:2019-04-20 14:21:19

标签: javascript arrays

我有一个n = 8且k = 4的数字

我想将n排列成k组,总计为n

示例: 假设n = 7和k = 3的预期结果应为:{1 1,5},{1,2,4},{1,3,3},{2,2,3},即(4)

n = 4且k = 2的预期结果应为:{2,2},{1,3},即(2)

我试图得到一对加在一起的数字。 我想知道如何有效地解决它,而无需单独求解k。

function answerQuery(n, k) {

  const items = [];

  let pairs = 0

  for (let i = 1; i < n; i++) {
    items.push(i)
  }

  let a = 0;
  let b = items.length - 1;

  while (a <= b) {
    let tmp = items[a] + items[b];

    if (tmp == n) {
      pairs ++
    }
    a++;
    b--;
  }
  return pairs
}

0 个答案:

没有答案