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

一群猴子排成一圈,按1 2 3 ... n依次编号

时间:2020-01-13 01:02:02      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:return   编号   初始化   cti   数据   ret   get   i++   次数   

<?php
/**
 * 一群猴子排成一圈,按1 2 3 ... n依次编号
 * 然后从第一只开始数,数到第m只把它踢出去,从它后面数,再到m只,然后踢出去。直到最后一个猴子,为大王。
 * 请算出大王的编号。
 */
function getKing($m,$n) {
    // 初始化数据
    $arr = [];
    for($i = 1;$i<= $n ;$i++) {
        $arr[] = $i;
    }

    // 循环次数,数组模拟队列
    for($j = 1;$j <= ($n-1)*$m;$j++) {
        $item = array_shift($arr); // 头一个出队列
        if ($j % $m != 0) {
            array_push($arr,$item); // 然后到队尾
        }
    }

    return array_shift($arr);
}

echo getKing(3,5); // 4

一群猴子排成一圈,按1 2 3 ... n依次编号

标签:return   编号   初始化   cti   数据   ret   get   i++   次数   

原文地址:https://www.cnblogs.com/jiqing9006/p/12185427.html

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