Пример #1
0
function king($n, $m)
{
    $monkey = range(1, $n);
    $i = 0;
    while (count($monkey) > 1) {
        $i += 1;
        $head = array_shift($monkey);
        if ($i % $m != 0) {
            array_push($monkey, $head);
        } else {
            echo $head, "\n";
        }
    }
    return $monkey[0];
}
king(10, 3);
// 快速排序
function swap(&$i, &$j)
{
    $tmp = $i;
    $i = $j;
    $j = $tmp;
}
function partition(&$A, $p, $r)
{
    $pviot = $A[$r];
    $j = $p;
    $i = $p - 1;
    while ($j < $r) {
        if ($A[$j] < $pviot) {
            $i++;
Пример #2
0
<?php

function king($n, $m)
{
    $monkey = range(1, $n);
    //模拟建立一堆猴子
    $i = 0;
    while (count($monkey) > 1) {
        $i += 1;
        //开始查猴子
        $head = array_shift($monkey);
        //删除并列出第一个猴子
        /*		echo "<br>";
        		var_dump($head);
        		echo "<br>";*/
        if ($i % $m != 0) {
            array_push($monkey, $head);
            //如果没数到m或m的倍数,则把该猴子放回$monkey的尾部去.
            echo "<br>";
            var_dump($monkey);
            echo "<br>";
        }
        //否则扔掉死猴子
    }
    return $monkey[0];
}
echo '剩余', king(3, 4), '号猴子';