一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号(约瑟夫环)。
function fuhuan($allnum, $ti){ $arr = array(); for($i = 0; $i < $allnum; $i++){ $arr[$i] = $i; } $nums = 1; while(count($arr) > 1){ foreach ($arr as $key => $value) { if($nums == $ti){ unset($arr[$key]); $nums = 1; }else{ $nums++; } } } $new_arr = array_values($arr); var_dump($new_arr[0] + 1);}fuhuan(10,10);
原文地址:https://www.cnblogs.com/caoql/p/8692156.html
时间: 2024-10-11 04:17:08