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

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


Cần viết hàm JavaScript nhận bất kỳ số lượng đối số (kiểu Number). Hàm tính tất cả các tổng có thể của phép cộng và trừ.

Ví dụ - Nếu đối số là 1, 2, 3. Tất cả tổ hợp:

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

Cuối cùng, hàm trả về tổng gần 0 nhất. Trong trường hợp này, câu trả lời 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))

Kết quả

Điều này sẽ tạo ra đầu ra sau:

2 0 1