방법 1:
function monkeyKing($n,$m) { $arr=range(1,$n); $i=0; while (count($arr)>1) { for($i=1;$i<=$m-1;$i++) { array_push($arr, array_shift($arr)); } array_shift($arr); } echo "$arr[0]"; } monkeyKing(6,4);//5
방법 2:
function king($m ,$n) { //构造数组 $arr=range(1,$m); $i = 0 ; //设置数组指针 while(count($arr)>1) { //遍历数组,判断当前猴子是否为出局序号,如果是则出局,否则放到数组最后 if(($i+1)%$n ==0) { unset($arr[$i]) ; } else { array_push($arr ,$arr[$i]) ; //本轮非出局猴子放数组尾部 unset($arr[$i]) ; //删除 } $i++ ; } return $arr ; } var_dump(king(6,4));
세 번째 방법: //이 방법은 잘 이해가 안 되지만 각자의 의견을 남겨주시면 좋겠습니다.
function yuesefu($n,$m) { $r=0; for($i=2; $i<=$n; $i++) { $r=($r+$m)%$i; } return $r+1; } print_r(yuesefu(3,3));//2
위의 내용을 포함하여 PHP Monkey King을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.