Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm tích lớn nhất của ba số trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript có duy nhất một mảng Numbers. Hàm phải chuẩn bị một mảng gồm ba phần tử như vậy từ mảng mang lại sản phẩm lớn nhất trong số ba phần tử bất kỳ của mảng. Cuối cùng, hàm sẽ trả về tích của ba phần tử đó.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [-10, 7, 29, 30, 5, -10, -70];

Sau đó, đầu ra phải là -

const output = 21000

vì ba số là 30, -10, -70

Chúng ta có thể thấy rằng mảng có thể hoặc sẽ chứa các phần tử âm. Do đó, trong trường hợp này, sản phẩm tối đa sẽ lớn hơn trong hai sản phẩm này -

min1 * min2 * max1
max1 * max2 * max3

Do đó, chúng tôi sẽ giải quyết nó như thế này

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là kết quả trên bảng điều khiển -

21000