php算法题

一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。

代码如下:

<?php

function king($n, $m){

    $monkeys = range(1, $n);

    $i=0;

    while (count($monkeys)>1) {

        if(($i+1)%$m==0) {

            unset($monkeys[$i]);

        } else {

            array_push($monkeys,$monkeys[$i]);

            unset($monkeys[$i]);

        }

        $i++;

    }

    return current($monkeys);

 

}

echo king(10,3);

 解析:

 

posted @ 2019-02-18 18:00  大黄蜂额额  阅读(140)  评论(0编辑  收藏  举报