Javascript 将数字分解为彼此最接近的总和
我希望Summand尽可能靠近彼此 x和y->“彼此最接近的y总和” 15和2->7+8 15和3->5+5+5 15和4->4+4+4+3 15和5->3+3+3+3+3 15和6->2+2+2+3+3+3 如果我除以x/y得到一个整数,那么解就是y乘以这个整数。但是如果我得到一个小数,它会变得更复杂,如上面的例子所示Javascript 将数字分解为彼此最接近的总和,javascript,math,Javascript,Math,我希望Summand尽可能靠近彼此 x和y->“彼此最接近的y总和” 15和2->7+8 15和3->5+5+5 15和4->4+4+4+3 15和5->3+3+3+3+3 15和6->2+2+2+3+3+3 如果我除以x/y得到一个整数,那么解就是y乘以这个整数。但是如果我得到一个小数,它会变得更复杂,如上面的例子所示 如何使用任意x和y计算“最接近的总和”(最好使用javascript代码?如果从x中减去Math.floor(x/y)*y,则可以使用最小的排列将余数分布在项上。函数最接近的
如何使用任意x和y计算“最接近的总和”(最好使用javascript代码?如果从
x
中减去Math.floor(x/y)*y
,则可以使用最小的排列将余数分布在项上。函数最接近的总和(x,y){
function closest_summands(x, y) {
var result = [],
n = Math.floor(x / y),
i, j;
for (i = 0, j = x % y; i < y; i++, j--) {
result.push(n + (j > 0 ? 1 : 0));
}
return result;
}
var结果=[],
n=数学楼层(x/y),
i、 j;
对于(i=0,j=x%y;i0?1:0));
}
返回结果;
}
计算除法的剩余部分。它会告诉您需要多久将除法的确切结果取整一次,而不是取整一次
function closest_summands(x, y) {
var div = x / y,
rem = x % y,
res = [];
for (var i=0; i<rem; i++)
res.push( Math.ceil(div) );
for ( ; i<y; i++) // continue
res.push( Math.floor(div) );
return res;
}
函数最近的求和(x,y){
var div=x/y,
rem=x%y,
res=[];
对于(var i=0;i