เราจำเป็นต้องเขียนฟังก์ชัน 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