首发于bbs.huse.cn javascript中的数组对象捆绑了强大的方法 因此它可以用很简短的代码实现强大的数组操作 而这些功能要C或者c++实现的话可能需要花费几倍的代码 而且可读性更差 约瑟夫问题的javascript解答 //written by lola.huse.2006-4-1 function printArray(Arr) { for(var j=0;j<Arr.length;j++) document.write(Arr[j]+" "); document.write(" ") } function a(peopleAmount,passKey) { var ar=new Array(); for(var i=0;i<peopleAmount;i++) ar.push(i+1); document.write("最初队伍为: ") printArray(ar); document.write("关键字为"+passKey+" ----------- ") var currentPos=1; while(ar.length>1) { currentPos=(currentPos+(passKey-1))%ar.length;// if(currentPos==0)currentPos=ar.length //document.write(currentPos+1+" "); document.write(ar.splice(currentPos-1,1)+"号走了,剩下成员为:"); printArray(ar); } document.write("最后剩下的是:") printArray(ar); document.write("<a href=javascript:history.back(-1)>继续"); } 人数 Key [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]