一个报数游戏js版(约瑟夫环问题)
更新时间:2010年08月05日 13:48:55 作者:
随便给一个数 比如100,那么从1到100围成一个圆圈,然后就类似123123报数一样逢3就舍掉,一直这样轮询 那么最后剩下来的那个数是多少?
这个也算是老题目了,园子里边也曾针对此题有过激烈的讨论,那时候追求用oo来解决。如今既然又有人提了出来,我便抽了点时间写了写自己的想法:
<script type="text/javascript">
var a_game = function(pNum){
var players = [];
for(var i=1;i<=pNum;i++){
players.push(i);
}
var flag=0;
while(players.length>1){
var outPlayerNum = 0,len=players.length;
for(var i=0;i<len;i++){
flag++;
if(flag==3){
flag=0;
document.writeln("出局:"+players[i-outPlayerNum]);
players.splice(i-outPlayerNum,1);
outPlayerNum++;
}
}
}
return players[0];
};
document.writeln("<br/>剩下:"+a_game(100));
</script>
结果如下:
出局:3 出局:6 出局:9 出局:12 出局:15 出局:18 出局:21 出局:24 出局:27 出局:30 出局:33 出局:36 出局:39 出局:42 出局:45 出局:48 出局:51 出局:54 出局:57 出局:60 出局:63 出局:66 出局:69 出局:72 出局:75 出局:78 出局:81 出局:84 出局:87 出局:90 出局:93 出局:96 出局:99 出局:2 出局:7 出局:11 出局:16 出局:20 出局:25 出局:29 出局:34 出局:38 出局:43 出局:47 出局:52 出局:56 出局:61 出局:65 出局:70 出局:74 出局:79 出局:83 出局:88 出局:92 出局:97 出局:1 出局:8 出局:14 出局:22 出局:28 出局:35 出局:41 出局:49 出局:55 出局:62 出局:68 出局:76 出局:82 出局:89 出局:95 出局:4 出局:13 出局:23 出局:32 出局:44 出局:53 出局:64 出局:73 出局:85 出局:94 出局:5 出局:19 出局:37 出局:50 出局:67 出局:80 出局:98 出局:17 出局:40 出局:59 出局:86 出局:10 出局:46 出局:77 出局:26 出局:71 出局:31 出局:100 出局:58
剩下:91
复制代码 代码如下:
<script type="text/javascript">
var a_game = function(pNum){
var players = [];
for(var i=1;i<=pNum;i++){
players.push(i);
}
var flag=0;
while(players.length>1){
var outPlayerNum = 0,len=players.length;
for(var i=0;i<len;i++){
flag++;
if(flag==3){
flag=0;
document.writeln("出局:"+players[i-outPlayerNum]);
players.splice(i-outPlayerNum,1);
outPlayerNum++;
}
}
}
return players[0];
};
document.writeln("<br/>剩下:"+a_game(100));
</script>
结果如下:
复制代码 代码如下:
出局:3 出局:6 出局:9 出局:12 出局:15 出局:18 出局:21 出局:24 出局:27 出局:30 出局:33 出局:36 出局:39 出局:42 出局:45 出局:48 出局:51 出局:54 出局:57 出局:60 出局:63 出局:66 出局:69 出局:72 出局:75 出局:78 出局:81 出局:84 出局:87 出局:90 出局:93 出局:96 出局:99 出局:2 出局:7 出局:11 出局:16 出局:20 出局:25 出局:29 出局:34 出局:38 出局:43 出局:47 出局:52 出局:56 出局:61 出局:65 出局:70 出局:74 出局:79 出局:83 出局:88 出局:92 出局:97 出局:1 出局:8 出局:14 出局:22 出局:28 出局:35 出局:41 出局:49 出局:55 出局:62 出局:68 出局:76 出局:82 出局:89 出局:95 出局:4 出局:13 出局:23 出局:32 出局:44 出局:53 出局:64 出局:73 出局:85 出局:94 出局:5 出局:19 出局:37 出局:50 出局:67 出局:80 出局:98 出局:17 出局:40 出局:59 出局:86 出局:10 出局:46 出局:77 出局:26 出局:71 出局:31 出局:100 出局:58
剩下:91
相关文章
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
window.setInterval()方法可以按照指定的周期执行来执行一段程序。周期是以毫秒为单位的,本文给大家介绍window.setInterval()方法的定义和用法,感兴趣的朋友参考下2015-11-11js报错 Object doesn''t support this property or method的原因分析
运行js是出现Object doesn't support this property or method 错误的可能原因分析。2011-03-03全面解析JavaScript中“&&”和“||”操作符(总结篇)
这篇文章主要介绍了全面解析JavaScript中“&&”和“||”操作符(总结篇)的相关资料,需要的朋友可以参考下2016-07-07bootstrap daterangepicker双日历时间段选择控件详解
这篇文章主要为大家详细介绍了bootstrap daterangepicker双日历时间段选择控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
最新评论