在 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
广告