在 JavaScript 中分发香蕉问题
问题
假设有n人排队,我们希望按以下方式向人们分发香蕉-
我们给第一个人1个香蕉,给第二个人2个香蕉,依此类推,直到我们给最后一个人n个香蕉。
然后,我们回到行的开头,给第一个人n+1个香蕉,给第二个人n+2个香蕉,依此类推,直到我们给最后一个人2*n个香蕉。
重复这个过程(我们每次多给一个香蕉,在我们到达结束后移动到行的开头),直到我们用完糖果。最后一个人将收到我们所有剩余的香蕉。
我们需要编写一个JavaScript函数,该函数将人数num作为第一个参数,将香蕉的数量m作为第二个参数。
我们的函数应该返回一个表示香蕉最终分布的数组(长度为numsumm)。
例如,如果函数的输入是-
const num = 3; const m = 10;
那么输出应该是-
const output = [5, 2, 3];
输出说明:
第一回合,res[0]+=1,数组为[1,0,0]。
第二回合,res[1]+=2,数组为[1,2,0]。
第三轮,res[2]+=3,数组为[1,2,3]。
第四回合,res[0]+=4,最终数组为[5,2,3]。
示例
此代码将是-
const num = 3;
const m = 10;
const distributeBananas = (num = 1, m = 1) => {
const res = new Array(num).fill(0);
let curr = 1;
while(true){
for(let i = 0; i < num; i++){
if(m < curr){
res[i] += m
return res
};
res[i] += curr;
m -= curr;
curr++;
};
};
};
console.log(distributeBananas(num, m));输出结果控制台中的输出将是-
[5, 2, 3]
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短