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

แบ่งตัวเลขเป็นอาร์เรย์ขนาด n ผลรวมเท่าเดิม - JavaScript

แบ่งตัวเลข sum เป็นอาร์เรย์ขนาด len โดยแต่ละค่าเท่ากัน (แบ่งเท่าๆ กัน)

ตัวอย่างโค้ด

const len = 8;
const sum = 5;

const splitNumber = (len, sum) => {
  const res = [];
  for (let i = 0; i < len; i++) {
    res.push(sum / len);
  }
  return res;
};

console.log(splitNumber(len, sum));

ผลลัพธ์

[ 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625 ]

วิธีแบบ Functional

const splitNumber = (len, sum) => 
  Array.from({ length: len }, () => sum / len);

// หรือถ้าต้องการจำนวนเต็ม (integer partition)
const splitInteger = (len, sum) => {
  const base = Math.floor(sum / len);
  const remainder = sum % len;
  return Array.from({ length: len }, (_, i) => base + (i < remainder ? 1 : 0));
};

console.log(splitInteger(8, 5)); // [1, 1, 1, 1, 1, 0, 0, 0] ผลรวม = 5