// 思路 // 创建一个队列 装入所有编号 // 创建循环 每次循环将前count-1个元素放到队列末尾 // 再从队列头部弹出一个元素 直到队列只剩1个元素 该元素就是淘汰后的结果 function fn(num, count) { let queue = [] // 队列 // 先将所哟编号从头填入队列 for (let i = 1; i <= num; i++) { queue.push(i) } // 直到队列剩下1个元素一直循环 while (queue.length > 1) { // 将前count - 1个元素 按顺序弹出并填入队列末尾 for (let i = 1; i < count; i++) { queue.push(queue.shift()) } // 再弹出头部元素 作为被淘汰的 queue.shift() } // 只剩一个元素 就是结果值 return queue[0] } // 验证 console.log(fn(30, 3)) // 29