本文主要是介绍PHP约瑟夫环问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#循环
function circle($arr,$idx,$k){for($i=0;$i<$idx;$i++){$tmp = array_shift($arr);array_push($arr,$tmp);}$j = 1;while(count($arr) > 0){$tmp = array_shift($arr);if($j++%$k == 0){echo $tmp."\n";}else{array_push($arr,$tmp);}}
}$arr = [1,2,3,4,5,6,7,8,9,10,11,12];
$idx = 3;
$k = 4;
circle($arr,$idx,$k);
#递归
function circle($arr,$idx,$k){$len = count($arr);$i = 1;if($len == 1){echo $arr[0]."\n";return ;} else {while($i++ < $k){$idx++;$idx = $idx%$len;}echo $arr[$idx]."\n";array_splice($arr,$idx,1);circle($arr,$idx,$k);}
}$arr = [1,2,3,4,5,6,7,8,9,10,11,12];
$idx = 3;
$k = 4;
circle($arr,$idx,$k);
这篇关于PHP约瑟夫环问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!