本文举例说明了PHP如何基于20行关联数组修复josephus问题。分享给大家参考,如下:
记得前段时间一个写java开发的兄弟跟我说,他在java60行做了一个约瑟夫斯问题,挺好的。取笑php应该写这个。
所以呵呵。洋洋洒洒写了20行,我自己都不信。哈哈,让不懂php的人知道php有多快多轻。
Ps:其实个人是挺反感用代码行数来衡量代码数的。我感觉经常谈代码行数的人,大多别无选择,只能装2。本文只属于休闲娱乐。
回看约瑟夫斯问题:n个人围成一个圈,从第一个开始数,第m个人会被杀,剩下的人会被杀。比如N=6,M=5,杀人顺序是:5,4,6,2,3,1。
实现代码如下:
?PHP $ n=7;echo '好吧,让我们测试$ NBR/';for($ I=1;$ I $ n;$ I){ $ a[' $ I ']=$ I 1;$ flag[$ I]=' in ';} $ a[' $ n ']=1;foreach($ a as $ key=$ value){ echo $ key。'='.$值。/br ';} $ key=1;$ out=0;$ r=0;while($ out $ n){ $ r;if($ r==2){ echo ' $ a[$ key]br/';//out $ a[$ key]=$ a[$ a[$ key]];$ out$ r=0;} $ key=$ a[$ key];}操作结果:
更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、0103010
希望本文对PHP编程有所帮助。