在 JavaScript 中將數字分割成 n 個相近的部分


問題

我們需要編寫一個 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 ]

更新於: 2021 年 4 月 22 日

976 次瀏覽

啟動你的職業生涯

完成課程即可獲得認證

開始
廣告