ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับค่าตัวเลข num เป็นอาร์กิวเมนต์แรกและอีกจำนวนหนึ่ง บางส่วน เป็นอาร์กิวเมนต์ที่สอง
หน้าที่ของเราควรแบ่งจำนวนตัวเลขออกเป็นตัวเลข (บางส่วน) ทุกประการ และเราควรคำนึงถึงสองเงื่อนไขนี้ -
- ตัวเลขควรใกล้เคียงที่สุด
- ตัวเลขควรคู่ (ถ้าเป็นไปได้)
และการเรียงลำดับเลขไม่สำคัญ
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
ป้อนข้อมูล
const num = 20; const parts = 6;
ผลผลิต
const output = [3, 3, 3, 3, 4, 4];
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const num = 20;
const parts = 6;
const splitNumber = (num = 1, parts = 1) => {
let n = Math.floor(num / parts);
const arr = [];
for (let i = 0; i < parts; i++){
arr.push(n)
};
if(arr.reduce((a, b)=> a + b,0) === num){
return arr;
};
for(let i = 0; i < parts; i++){
arr[i]++;
if(arr.reduce((a, b) => a + b, 0) === num){
return arr;
};
};
};
console.log(splitNumber(num, parts)); ผลลัพธ์
[ 4, 4, 3, 3, 3, 3 ]