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.