版权声明:转载请注明出处 https://blog.csdn.net/geol200709/article/details/80257251
设有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);
}
}