所以这是给出的问题。
你在一个有 100 把椅子的房间里。椅子按从 1 到 100 的顺序编号。
在某个时间点,1 号椅子上的人将被要求离开。2 号椅子上的人将被跳过,3 号椅子上的人将被要求离开。这种跳过一个人并要求下一个人离开的模式将继续围绕圆圈进行,直到剩下一个人,即幸存者。
这就是我想出的答案。我相信这是正确的答案,我在纸上也做了大约 10 次,每次都得出 74 个。这是一个技巧问题还是什么?因为我不知道从这里做什么。
这是 jsfiddle http://jsfiddle.net/cQUaH/
var console = {
log : function(s) {
document.body.innerHTML += s + "<br>";
}
};
var chairArr = [];
for (var i = 1; i <= 100; i++){
chairArr.push(i);
}
var j = 2;
while(chairArr.length > 1) {
console.log('removing ' + chairArr[j]);
chairArr.splice(j, 1);
j++;
if(j >= chairArr.length) {
console.log('--- Finished pass');
console.log('--- Array state:');
console.log(chairArr);
j = (j == chairArr.length) ? 0 : 1;
}
}
console.log('--- Final result: ' + chairArr);
//result 74