Zapętlanie numerów
To jest pytanie, które zostało zadane.
Jesteś w pokoju z kręgiem 100 krzeseł. Krzesła są kolejno ponumerowane od 1 do 100.
W pewnym momencie osoba na krześle nr 1 zostanie poproszona o odejście. Osoba na krześle nr 2 zostanie pominięta, a osoba na krześle nr 3 zostanie poproszona o opuszczenie. Ten wzorzec omijania jednej osoby i proszenia następnego o opuszczenie będzie krążył po okręgu, dopóki nie pozostanie jedna osoba, która przeżyła.
I to jest odpowiedź, którą wymyśliłem. Wierzę, że to właściwa odpowiedź, zrobiłem to również na papierze około 10 razy i za każdym razem wymyśliłem 74. Czy to podchwytliwe pytanie? Ponieważ nie jestem pewien, co tutaj robić.
Oto jsfiddlehttp://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