奇安信笔试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));

#笔试题目##奇安信#
全部评论
请问楼主今天笔试时出现过自测不显示输出的情况吗?
点赞 回复 分享
发布于 2021-04-14 17:20
感觉和我上次笔试是同一道题诶
点赞 回复 分享
发布于 2021-04-16 07:09

相关推荐

挣K存W养DOG:入职送金条全球游,路过缅甸停一下🐔
点赞 评论 收藏
分享
把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
评论
点赞
5
分享
牛客网
牛客企业服务