//队列
class Queue {
//利用数组
arr = []
//进队列
enter(element) {
this.arr.push(element)
}
//出队列
leave() {
return this.arr.shift()
}
//长度
size() {
return this.arr.length
}
//返回数值
value() {
return this.arr.splice(0)
}
}
// let a = new Queue()
// console.log(a)
//击鼓传花
//m为数到m出局
//n参加的人数
const game = function game(n, m) {
//所有人依次进入 队列
let qe = new Queue(), i = 1
for (; i <= n; i++) qe.enter(i)
//开始数数:数到m之前 操作为 移除队列,进入队列 到 m 为 移除队列
while (qe.size() > 1) {
i = 1
for (; i < m - 1; i++) qe.enter(qe.leave())
qe.leave()
}
//当队列长度为1的时候,返回唯一值即可
return qe.value()[0]
}
console.log(game(8, 5))
console