編號為1到100的一百個人圍成一圈,以123123的方式進行報數,數到3的人自動退出圈子,剩下的人繼續報數,問最后剩下的人編號為幾?
var stackArr = [];
for(var j=1;j<=100;j++){
stackArr.push(j);
}
function josephusStackDeal(obj){
var objArr = obj.objArr||[];
if(objArr.length == 0){
return;
}
var newArr = obj.newArr||[];
var newObj = {};
var firstEle = '';
var secondEle = '';
var thirdEle = '';
if(objArr.length==1){
newArr.push(objArr[0]-1);
objArr = [];
newObj = {
objArr:objArr,
newArr:newArr
}
console.log(newObj.newArr)
return newObj;
}
if(objArr.length==2){
thirdEle = objArr.shift();
newArr.push(thirdEle-1);
newObj = {
objArr:objArr,
newArr:newArr
}
josephusStackDeal(newObj);
// return
}
if(objArr.length>2){
firstEle = objArr.shift();
secondEle = objArr.shift();
thirdEle = objArr.shift();
objArr.push(firstEle);
objArr.push(secondEle);
newArr.push(thirdEle-1);
newObj = {
objArr:objArr,
newArr:newArr
}
josephusStackDeal(newObj);
// return;
}
}
josephusStackDeal({objArr:stackArr,newArr:[]})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/223500.html
標籤:JavaScript
