gpt4 book ai didi

javascript - 如何将未知整数划分为给定数量的(几乎)偶数

转载 作者:行者123 更新时间:2023-12-01 15:19:03 28 4
gpt4 key购买 nike

我需要帮助才能将未知整数分成给定数量的偶数部分——或者至少尽可能地均匀。各部分之和应为原值,但各部分应为整数,且应尽可能接近。

参数
num: Integer - 应该被分成相等部分的数字

parts: Integer - 该数字应拆分的部分数
进入

返回值
List (of Integers) - 零件列表,每个索引代表零件,其中包含的数字代表零件的大小。零件将按从小到大的顺序排列。

这就是我所拥有的

var splitInteger = function(num, parts) {
// Complete this function

var randombit = num * parts;
var out = [];

for (var i = 0; i < parts; i++) {
out.push(Math.random());
}

var mult = randombit / out.reduce(function(a, b) {
return a + b;
});

return out.map(function(el) {
return el * mult;
});

}
var d = splitInteger(10, 5)
console.log(d);
console.log("sum - " + d.reduce(function(a, b) {
return a + b
}));


这是样本测试
let assert = require("chai").assert;
describe('Challenge', function() {
it('Simple Functionality', function() {
assert.deepEqual(splitInteger(10,1), [10]);
assert.deepEqual(splitInteger(2,2), [1,1]);
assert.deepEqual(splitInteger(20,5), [4,4,4,4,4]);
});
});

预期输出示例:

num 个部分返回值。

完全偶数部分示例 10 5 [2,2,2,2,2]。

甚至可以是零件示例 20 6 [3,3,3,3,4,4]。

我收到一个错误。

最佳答案

试试这样。

var splitInteger = function(num, parts) {
// Complete this function

var val;
var mod = num % parts;
if(mod == 0){
val = num/parts;
retData = Array(parts).fill(val);
} else {
val = (num-mod)/parts;
retData = Array(parts).fill(val);
for(i=0;i<mod;i++){
retData[i] = retData[i] + 1;
}
retData.reverse()
}

return retData;

}
var d = splitInteger(20, 6)
console.log(d);
console.log("sum - " + d.reduce(function(a,b){return a+b}));

关于javascript - 如何将未知整数划分为给定数量的(几乎)偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56107612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com