function getFinalOpenedDoors(numDoors) {
let doors = Array(numDoors + 1).fill(0); // 0 = 关闭, 1 = 打开
// 遍历100个人
for (let i = 1; i <= numDoors; i++) {
for (let k = i; k <= numDoors; k += i) { // 翻转编号是 i 倍数的门
doors[k] = 1 - doors[k]; // 0 变 1,1 变 0
}
}
// 获取所有打开的门的索引(编号)
return doors
.map((state, index) => (state === 1 ? index : -1))
.filter(index => index > 0); // 过滤掉未打开的门
}
// 测试
console.log(getFinalOpenedDoors(100));