码迷,mamicode.com
首页 > 其他好文 > 详细

约瑟夫环问题

时间:2018-10-31 11:19:27      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:编号   ret   编程   过程   turn   UNC   模拟   param   ++   

相关题目:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去…,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。

/**
 * 获取大王
 * @param  int $n 
 * @param  int $m 
 * @return int  
 */
function get_king_mokey($n, $m) 
{
    $arr = range(1, $n);

    $i = 0;

    while (count($arr) > 1) {
        $i++;
        $survice = array_shift($arr);

        if ($i % $m != 0) {
            array_push($arr, $survice);
        }
    }

    return $arr[0];
}

  

约瑟夫环问题

标签:编号   ret   编程   过程   turn   UNC   模拟   param   ++   

原文地址:https://www.cnblogs.com/foxy/p/9881790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!