ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers, arr เป็นอาร์กิวเมนต์แรกและตัวเลขเดี่ยว num เป็นอาร์กิวเมนต์ที่สอง
เราควรเพิ่มองค์ประกอบเข้าไป ทำให้อาร์เรย์ของเราได้รับผลรวมใดๆ โดยการเพิ่มตัวเลขเฉพาะระหว่าง [0, num] (รวมทั้งทั้งสองอย่าง) ในที่สุด ฟังก์ชันของเราควรคืนค่าจำนวนขั้นต่ำที่จำเป็นในการเพิ่มลงในอาร์เรย์ เพื่อให้สามารถสร้างผลรวมใดๆ ระหว่าง 0 ถึง num
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [1, 5, 10]; const sum = 20;
จากนั้นผลลัพธ์ควรเป็น −
const output = 2;
คำอธิบายผลลัพธ์:
เพราะถ้าเราบวกตัวเลขสองตัว (2 และ 4) ลงในอาร์เรย์ เราสามารถบรรลุผลรวมใดๆ ระหว่าง [0, 20]
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [1, 5, 10]; const sum = 20; const minimumAddition = (arr = [], sum = 1) => { let canAdd = 1; let count = 0,i = 0; while(canAdd <= sum){ if((i >= arr.length) || (canAdd < arr[i])){ count++; canAdd+=canAdd; }else{ canAdd += arr[i++]; }; }; return count; }; console.log(minimumAddition(arr, sum));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
2