美文网首页
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面试题-猴子选大王算法实现

  • PHP算法之猴子选大王

    猴子选大王 一群猴子要选新猴王。新猴王的选择方法是:让M只候选猴子围成一圈,从某位置起顺序编号为1~M号。从第1号...

  • PHP 算法题猴子选大王

    题目 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再...

  • PHP经典面试题,猴子选大王!

    一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第...

  • 猴子选大王

    一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第...

  • (改)~-7 猴子选大王

    7-7 猴子选大王(20 分)一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为...

  • 约瑟夫环类问题的简单解法

    原创 猴子选大王 一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从...

  • 2018-08-02

    php实现组合枚举算法 源码

  • python-猴子选大王问题

    一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每...

  • 常用的排序算法

    常用的排序算法(PHP实现)_慕课手记

网友评论

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

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