1. 程式人生 > >php算法題

php算法題

range lin return set dex index ima 代碼 echo

一群猴子排成一圈,按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);

解析:

技術分享圖片

php算法題