在JavaScript中找到三个数的最大乘积
我们需要编写一个JavaScript函数,该函数以Numbers数组为唯一。函数应该从该数组中准备三个这样的元素组成的数组,以在该数组的任何三个元素中产生最大的乘积。该函数最终应返回这三个元素的乘积。
例如-
如果输入数组是-
const arr = [-10, 7, 29, 30, 5, -10, -70];
那么输出应该是-
const output = 21000
因为这三个数字分别是30,-10,-70
我们可以看到数组可以或可能包含负元素。因此,在这种情况下,最大乘积将是这两个中的较大者-
min1 * min2 * max1 max1 * max2 * max3
因此,我们将像这样解决它
示例
以下是代码-
const arr = [-10, 7, 29, 30, 5, -10, -70]; const threeProduct = (arr = []) => { const sorter = (a, b) => a -b; arr.sort(sorter); let pro1 = 1, pro2 = 1; let len = arr.length - 1; for (let i = len; i > len - 3; i--) { pro1 = pro1 * arr[i]; }; pro2 = arr[0] * arr[1] * arr[len]; return Math.max(pro1, pro2); } console.log(threeProduct(arr));
输出结果
以下是控制台上的输出-
21000