题目
判断数组是否能够调整成任意两个数相乘是否是4的倍数
- 首先求出所有的奇数个数,然后求出所有只包含1个2因子的数和所有包含4因子的数(和只包含1个2因子互斥关系)的个数
- 如果没有只包含1个2因子的数,摆法为[奇,4,奇,4,...]
- 如果有包含1个2因子的数,摆法为[2,2,...,4,奇,4,奇,...]
function process(arr) {
let odd = 0,
only2 = 0,
have4 = 0;
for (let i = 0; i < arr.length; i++) {
const temp = arr[i];
if (temp % 2 !== 0) {
odd++;
} else {
if (temp === 0) {
continue;
}
if (temp % 4 === 0) {
have4++;
} else {
only2++;
}
}
}
if (only2 === 0) {
if (odd === 1) {
if (have4 >= 1) {
return true;
} else {
return false;
}
} else if (odd > 1) {
if (have44 >= odd - 1) {
return true;
} else {
return false;
}
}
} else {
if (have4 >= odd) {
return true;
} else {
return false;
}
}
}