给定一个数值M(1<M<100),编号1~100的学生依次报数到M ,则报到M的同学离队,报数不是小于M的同学进入队尾,继续报数,循环报数后将剩余M-1个同学。
const M = 4;
let arr = []
for (let i = 1; i <= 100; i++) {
arr.push(i)
}
while (arr.length > (M - 1)) {
for (let i = (M - 1); i < arr.length; i += M) {
arr[i] = 0
}
arr = arr.splice(Math.floor(arr.length / M) * M, arr.length).concat(arr).filter(item => item)
}
arr.sort((a, b) => a - b)
console.log('arr', arr);
模拟 M 为4