首页 > 奇安信笔试4.14
头像
coderdxh
编辑于 2021-04-15 10:39
+ 关注

奇安信笔试4.14

// 求最大体积
function getMaxVolume(n) {
  // write code here
  // 和为 n 的数组
  let theNumArr = [];

  let x = null;
  let y = null;
  let z = null;

  let res = 0;
  // 小于n的所有质数 - 数组
  let znumberArr = getZNumber(n);

  for (let i = 0; i < znumberArr.length; i++) {
    if (znumberArr[i] * 3 == n) {
      theNumArr.push(`${znumberArr[i]},${znumberArr[i]},${znumberArr[i]}`)
    }
  }

  for (let i = 0; i < znumberArr.length; i++) {
    x = i;
    for (let j = 0; j < znumberArr.length; j++) {
      y = j;
      if (znumberArr[x] * 2 + znumberArr[y] == n) {
        theNumArr.push(`${znumberArr[i]},${znumberArr[i]},${znumberArr[j]}`);
      }
    }
  }

  for (let i = 0; i < znumberArr.length; i++) {
    x = i;
    for (let j = 0; j < znumberArr.length; j++) {
      y = j;
      for (let k = 0; k < znumberArr.length; k++) {
        z = k;
        if (znumberArr[x] + znumberArr[y] + znumberArr[z] == n) {
          theNumArr.push(`${znumberArr[i]},${znumberArr[j]},${znumberArr[k]}`);
        }
      }
    }
  }

  theNumArr.forEach(str => {
    let narr = str.split(",");
    let ares = parseInt(narr[0]) * parseInt(narr[1]) * parseInt(narr[2])
    if (ares > res) {
      res = ares
    }
  })

  return res
}

// 求质数
function getZNumber(n) {
  // 存放质数的数组
  let numArr = [];
  // 求 n 以内的质数
  for (let i = 2; i < n; i++) {
    let flag = true;
    for (let j = 1; j <= i; j++) {
      if(i % j == 0) {
        if (j != 1 && j != i) {
          // 合数
          flag = false;
          break;
        }
      }
    }
    if (flag) {
      numArr.push(i);
    }
  }
  return numArr;
}

console.log(getMaxVolume(15));

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐