js笔试题

2021-01-21  本文已影响0人  子夜照弦歌

50个人围成一圈排上编号1-50,然后按照1、 2、 3循环报数。报到3的人移除,剩下的人接着从1开始报数,直至剩下不能再报到3的人。请问最后一人的编号是多少?如何用代码来实现。

// 分析:此问题考察递归
function circle(arr) {
    if (arr.length < 3) {
        console.log(arr[arr.length - 1])
        return;
    }
    for (let i = 0; i < arr.length; i++) {
        if ((i + 1) % 3 == 0) {
            arr.splice(i, 1)
            i--;
        }
    }
    circle(arr)
}
let arr = []
for (let i = 1; i <= 50; i++) {
    arr.push(i)
}
circle(arr);
上一篇 下一篇

猜你喜欢

热点阅读