/*房间里有100盏灯,编号1到100。
有100个人,编号1到100。
100个人轮流进入房间,每个人进去后,
按下所有灯的编号能整除自身编号的灯的开关。
比如编号为10的人进去,
必须按一下10,20,30,……100的灯开关。
房间里的灯开始全部是暗的,按一下为亮,
再按一下又变暗,再按又变亮。
问:100个人乱序进入房间后,有哪些灯是亮的?*/
//一百盏灯
let deng = Object.keys(Array.apply(null, {length:100})).map(res=>{return +res+1;})
//一百个人
let ren = Object.keys(Array.apply(null, {length:100})).map(res=>{return +res+1;})
//随机打乱人的序列
ren.sort(() => Math.random() - 0.5);
console.log(deng)
console.log(ren)
//亮着的灯
let isDeng = []
ren.filter(r =>{
deng.filter(res=>{
if(res % r === 0){
if(isDeng.indexOf(res) === -1){
//不存在,亮灯
isDeng.push(res)
}else{
//不存,熄灯
let index = isDeng.findIndex(i=>{return i === res})
isDeng.splice(index , 1);
}
}
})
})
//给亮着的灯升序排列
isDeng.sort(function(a, b) {
return a - b;
});
console.log(isDeng)