Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การแบ่งตัวเลขเป็น n ส่วนที่ใกล้เคียงกันใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข num เป็นอาร์กิวเมนต์แรก และอีกตัวเลข parts เป็นอาร์กิวเมนต์ที่สอง

ฟังก์ชันควรแบ่งตัวเลข num ให้เป็นจำนวน (parts) ตัวเลขพอดี และควรคำนึงถึงเงื่อนไขสองข้อนี้

  • ตัวเลขควรใกล้เคียงกันมากที่สุด
  • ตัวเลขควรเป็นเลขคู่ (ถ้าเป็นไปได้)

และลำดับของตัวเลขไม่สำคัญ

ตัวอย่างเช่น หากอินพุตคือ

อินพุต

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 ]