Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาผลรวมที่เป็นไปได้ทั้งหมด (บวกและลบ) ของ n อาร์กิวเมนต์ JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่อาร์กิวเมนต์จำนวนเท่าใดก็ได้ (ประเภท Number ทั้งหมด)

ฟังก์ชันควรคำนวณผลรวมของการบวกและการลบที่เป็นไปได้ทั้งหมด

ตัวอย่างเช่น − หากอาร์กิวเมนต์เป็น 1, 2, 3

จากนั้นชุดค่าผสมที่เป็นไปได้ทั้งหมดคือ −

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

สุดท้าย ฟังก์ชันควรเป็นผลรวมที่ใกล้เคียง 0 มากที่สุด ในกรณีนี้ คำตอบนั้นจะเป็น 0

ตัวอย่าง

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

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

2
0
1