约瑟夫循环问题的PHP实现使用PHP数组的内部指针操作功能。
看看这个问题的详细描述。一种观点sourceprint一圈猴组,按1,2,…,n反过来。然后开始从一数到m,只是把它踢出圈,从它开始,然后数到m,只有踢出去,这样下去直到最后一只猴子需要左。编程模拟此过程,输入m,n,输出王的最后一个号码。
刚开始的时候想用PHP来实现数组(当然,最后使用数组),然后模拟内部指针到数组中,结果发现模拟一个数组指针并不是那么容易,因为它涉及到很多指针操作,最后突然想到PHP是一个指向数组内部的指针。为什么去汽车轮子所以你看到了代码:
复制代码代码如下所示:
功能getkingmonkey($ n,m美元)
{
$ =(数组);数组声明
($ i = 1;$ i $ n;$ + +)
{
$ $ { i $ }。
}
重置($);为了严格,我们有一个重置()函数,但也可以保存。
当计数($)> 1)主循环开始时,这里使用的条件是数组元素的数目等于停止循环的1。
{
对于($ = 1;$计数器);嵌套在循环中,用于给m猴子播放
{
如果(下一个($)){如果有下一个元素
如果($ = m)
{
unset($ { array_search(沪指(合一),$)}); / /当数到m,使用unset()删除数组元素
}
}
如果没有下一个元素
{
重置($ A);第一个元素是下一个元素数组
如果($ = m)
{
unset($ { array_search(端(合一),$)}); / /当数到m,使用unset()删除数组元素,这里需要注意的是结束()
重置($ A);记住要使内部指针数组归位。
}
}
}
}
返回电流(a);
}
测试以下:
猴子王的数目是:。(100, 17)getkingmonkey;
输出是:
查看sourceprint孙悟空是编号:53
最后~