主页 > PHP > 猴子选大王算法

猴子选大王算法

2017 年 8 月 22 日 没有评论

猴子选大王
从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局
再从刚出局猴子的下一个位置重新开始报数
如此重复
直至剩下一个猴子,它就是大王

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function monkeyKing($m, $n){
    $arr=range(1,$m);
    $i = 0;
    while(count($arr) > 1){
        if(($i+1)%$n == 0){
            unset($arr[$i]);
        }else{
            // 没有叫到n的放回数组
            array_push($arr, $arr[$i]);
            //删除本次循环的数字
            unset($arr[$i]);
        }
        $i++;
    }
    return reset($arr);
}
var_dump(monkeyKing(10,3));
exit;

评论已关闭.