美文网首页
php面试题-猴子选大王算法实现

php面试题-猴子选大王算法实现

作者: MikeLue | 来源:发表于2019-11-12 15:29 被阅读0次
    <?php
    
    /**
     * 猴子选大王
     * @param  [type] $data 猴子数据,默认值都为1,排查设为0, 例: [1,1,1,1,1,1]
     * @param  [type] $m    报数
     * @return [type]       猴子序号
     */
    function selectKing($data, $m)
    {
        $count   = $end   = count($data); //猴子个数
        $current = 0;
        $number  = 1;
        while ($count) {
            if ($data[$current] != 0) {
                //最后一个
                if ($count == 1) {
                    break;
                }
                if ($number == $m) {
                    $data[$current] = 0; //排除一个
                    $number         = 1; //重新报数
                    $count--;            //去掉一个
                } else {
                    $number++; //继续报数
                }
            }
    
            //下一位
            $current++;
            if ($current == $end) {
                $current = 0;
            }
        }
    
        return $current + 1;
    }
    
    $data = [1, 1, 1, 1, 1, 1, 1];
    var_dump(selectKing($data, 6));
    

    相关文章

      网友评论

          本文标题:php面试题-猴子选大王算法实现

          本文链接:https://www.haomeiwen.com/subject/zlkqictx.html