奇安信笔试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)); #笔试题目##奇安信#
查看20道真题和解析