设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列, …,如此反复到所有的人全部出列为止。设n个人的编号分别为 1, 2, …, n,打印出出列顺序
function countOff(N, M) {
if (N < 1 || M < 1) {
return;
}
const source = Array(...Array(N)).map((_, i) => i + 1);
let index = 0;
while (source.length) {
index = (index + M - 1) % source.length;
console.log(source[index]);
source.splice(index, 1);
}
}