<?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 ...