在 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