在 JavaScript 中向数组中添加元素使其和变得多样
问题
我们需要编写一个 JavaScript 函数,它以一个数字数组 arr 作为第一个参数,并以一个数字 num 作为第二个参数。
我们应该通过向数组添加元素,使我们的数组能够通过在它之间的 [0, num](包括两者)范围内添加特定数字来获得任何总和。我们的函数最终应该返回向数组中添加的最小数字数量,以便它能够产生介于 0 和 num 之间的任何总和。
例如,如果输入到该函数的是 −
const arr = [1, 5, 10]; const sum = 20;
那么输出应该是 −
const output = 2;
输出说明
因为如果我们向数组添加两个数字(2 和 4),我们就能获得介于 [0, 20] 之间的任何总和
示例
代码如下 −
const arr = [1, 5, 10];
const sum = 20;
const minimumAddition = (arr = [], sum = 1) => {
let canAdd = 1;
let count = 0,i = 0;
while(canAdd <= sum){
if((i >= arr.length) || (canAdd < arr[i])){
count++;
canAdd+=canAdd;
}else{
canAdd += arr[i++];
};
};
return count;
};
console.log(minimumAddition(arr, sum));输出
控制台中的输出将是 −
2
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP