如题,把一个数变成一个平均的数组
如数字8,均分成4个时变成[2,2,2,2],无法均分时,数组第一项的值可以比第二项大,以此类推,如均分成3个时变成[3,3,2],均分成5个时[2,2,2,1,1]
如题,把一个数变成一个平均的数组
如数字8,均分成4个时变成[2,2,2,2],无法均分时,数组第一项的值可以比第二项大,以此类推,如均分成3个时变成[3,3,2],均分成5个时[2,2,2,1,1]
java代码如下,转换成js应该很容易
public int [] splitNum(int num, int len) {
if (len < 1) {
return null;
}
int [] res = new int[len];
int divisor = num/len;
int remainder = num%len;
Arrays.fill(res, divisor);
for(int i = 0; i < remainder; i++) res[i]++;
return res;
}
function sort(n,s){
var el = n%s,
sl = s-el,
e = parseInt(n/s);
return el?range((n-sl*e)/el,el).concat(range(e,sl)):
range(e,sl);
}
sort(8,3);
function range(n,l){
for(var i=0,newArr=[];i<l;i++)
newArr.push(n);
return newArr;
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决