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

แยกตัวเลขออกเป็น n ส่วนใกล้กันใน JavaScript


ปัญหา

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