Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phân chia mảng thành 1 phần tử và phần còn lại có tích bằng nhau - JavaScript

Viết hàm kiểm tra có thể chia mảng thành 1 phần tử và phần còn lại sao cho phần tử đó = tích của các phần tử còn lại.

Ví dụ

Mảng: [1, 56, 2, 4, 7]

56 = 1 × 2 × 4 × 7 = 56 → true

Giải pháp

Mã triển khai (tìm max, kiểm tra max = tích các phần tử khác):

const arr = [1, 56, 2, 4, 7];

const isEqualPartition = arr => {
  const product = arr.reduce((a, b) => a * b, 1);
  const max = Math.max(...arr);
  // Nếu max = product / max → max² = product
  return max * max === product;
};

console.log(isEqualPartition(arr));

Kết quả

Đầu ra trong console:

true

Giải thích: Tích tất cả = 1×56×2×4×7 = 3136. Max = 56. 56² = 3136 → đúng. Code gốc dùng reduce phức tạp, cách này đơn giản hơn.