在 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 ]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP