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

Tìm tất cả các tổng có thể kết hợp (cộng và trừ) của n đối số JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript với bất kỳ số lượng đối số nào (tất cả đều thuộc loại Number).

Hàm sẽ tính toán tất cả các tổng có thể có của phép cộng và phép trừ.

Ví dụ - Nếu các đối số là 1, 2, 3

Sau đó, tất cả các kết hợp có thể là -

1 + 2 + 3
1 - 2 - 3
1 + 2 - 3
1 - 2 + 3

Cuối cùng, hàm phải có tổng gần nhất bằng 0. Trong trường hợp này, câu trả lời đó sẽ chỉ là 0.

Ví dụ

const findSmallestPositive = (...arr) => {
   let set = new Set([Math.abs(arr[0])]);
   for (let i = 1;
   i < arr.length; i++){
      const secondSet = new Set;
      for (let d of Array.from(set)){
         secondSet.add(Math.abs(d + arr[i]))
         secondSet.add(Math.abs(d - arr[i]))
      };
      set = secondSet;
   };
   return Math.min(...Array.from(set))
};
console.log(findSmallestPositive(5,3))
console.log(findSmallestPositive(1,2,3))
console.log(findSmallestPositive(1,2,3,5))

Đầu ra

Điều này sẽ tạo ra kết quả sau -

2
0
1