击鼓传花游戏规则: 所有人围成一圈,开始数数,数到某个数字的人自动淘汰。最后剩下的这个人获得胜利,求最后剩下的人是谁?
例如:
解释说明:将这6个学生放入队列中,每个人报一个数的同时出队,并重新进入队列尾部。数到5的学生,出队后不再重新加入队列。
依次循环,直到队列中只有一个人,即为最后的胜利者。
过程:
结果:剩下1这个人
代码实现:
function passGame(nameList, num) {
//1、创建一个队列结构
var queue = [];
//2、把学生加入队列
for (var i = 0; i < nameList.length; i++) {
queue.push(nameList[i]);
}
//3、开始数数
while (queue.length > 1) {
//不是这个数,加入队尾
for (var i = 1; i < num; i++) {
let n = queue.shift();
queue.push(n);
}
//是这个数,直接删除
queue.shift();
}
//4、获取最后剩下的那个人
console.log(queue[0]);
}
var winner = passGame([1, 2, 3, 4, 5, 6], 5); // 结果:1