PHP實現的猴王演算法 猴子選大王 示例

2022-10-06 07:42:13 字數 1177 閱讀 2753

<?php function getkingmokey($n, $m)

$len = count($monkey);

//迴圈遍歷陣列元素(猴子編號)

for($i= 0; $i< $len; $i= $i)

//若只剩乙隻猴子 則輸出該猴子編號(陣列元素值) 並退出迴圈

if($num == 1)

//將第$i只猴子踢出隊伍(相應陣列位置元素值設為0)

$monkey[$i] = 0;

//列印該猴子位置

echo $i."";

//設定計數器

www.cppcns.com for($j= 1; $j<= $m; $j++)

}//若編號大於猴子個數,則從第0只猴子開始遍歷(陣列指標歸零)

//步驟同上

if($i == $len) $i = 0;

//同上步驟,獲取下乙隻猴子編號

if($monkey[$i] == 0)}}

}}//猴子個數

$n = 10;

//踢出隊伍的編號間隔值

$m = 3;

//呼叫猴王獲取函式

genigevtk程式設計客棧ingmokey($n, $m);

?>

執行結果:

用遞迴的演算法

$monkeys = array(1 , 2 , 3 , 4 , 5 , 6 , 7, 8 , 9 , 10); //monkey的編號

$m = 4; //數到第幾隻的那只猴子被踢出去

function killmonkey($monkeys , $m , $current = 0)

else

echo $monkeys[$current]."的猴子被踢掉了

"; array_splice($monkeys , $current , 1);

killmonkey($monkeys , $m , $current);

}}killmonkey($monkeys , $m);

執行結果:

4的猴子被踢掉了

8的猴子被踢掉了

2的猴子被踢掉了

7的猴子被踢掉了

3的猴子被踢掉了

10的猴子被踢掉了

9的猴子被踢掉了

1的猴子被踢掉了

6的猴子被踢掉了

5成為猴王了

PHP猴子選大王演算法(詳解)

現在去公司面試很多hr都會讓程式猿寫乙個演算法,來考察程式猿的思維邏輯能力。演算法對其他的程式語言是很重要的,但是對於php這種弱類的程式語言,演算法其實用得並不是很多,但是沒辦法,hr要讓你寫,你不得不寫,誰叫他是老大呢。好吧,閒話不多說,上 notes user administrator da...

PHP猴子選大王問題

問題簡介 n只猴子圍坐成乙個圈,按順時針方向從1到n編號。然後從1號猴子開始沿順時針方向從1開始報數,報到m的猴子出局,再從剛出局猴子的下乙個位置重新開始報數,如此重複,直至剩下乙個猴子,它就是大王.這裡使用乙個遞推公式 f i 表示有i只猴子時,每次剔除m只猴子,最後剩下的大王座標 座標從0開始 ...

PHP程式設計 猴子選大王

猴子選大王 17個猴子圍成一圈,從某個開始報數1 2 3 1 2 3 報 3 的猴子就被淘汰,遊戲一直進行到圈內只剩乙隻猴子它就是猴大王了 程式設計思路 如果猴子被淘汰則unset 否則array push 不停迴圈 直至陣列中只有乙個元素 假如5個猴子 每報乙個數 陣列的值 初始陣列 array ...