一群猴子排成一圈,按1,2,...,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去...,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號


<?php
/**
 * [猴子選大王]
 * @param  [type] $m [猴子數]
 * @param  [type] $n [出局次數]
 * @return [type]    [description]
 */
//echo "1";
function monkey($m,$n){
    //定義一個數組
    for($i=1;$i<$m+1;$i++){
         $arr[]=$i;
    }
    //數組里的任意一個數
    // $arr=rand(1,10);
    //$arr=array(1,2,3,4,5,6,7,8,9);
    //設置數組指針
    $i=0;
    //循環數組,判斷猴子次數
    while(count($arr)>1){
       if(($i+1)%$n==0){
          unset($arr[$i]);//把第m只猴子踢出去
       }else{
             array_push($arr,$arr[$i]);//把第m只猴子放在最后面
             unset($arr[$i]);//刪除
       }
       $i++;
    }
    return $arr[$i];//返回結果
}
//var_dump((monkey(6,4)));//測試,輸出編號
echo "猴子大王的編號是".intval((monkey(6,8)));
?>



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM