猴子選大王 方法:遞歸 語言: php
關注:101 答案:3 手機版
解決時間 2021-01-16 00:06
提問者愛你又怎樣
2021-01-15 08:05
最好詳細介紹下公式 每個字母代表什麼意思 公式是怎麼一步一步推出來的
最佳答案
二級知識專家落日海灣
2021-01-15 09:24
function killMonkey($monkeys , $n , $current = 0){
$num = 1;
if(count($monkeys) == 1){
echo $monkeys[0]."成為猴王了";
return;
}
else{
for($num;$num
$current++;
}
echo $monkeys[$current]."的猴子被踢掉了
";
array_splice($monkeys , $current , 1);
var_dump($monkeys);
killMonkey($monkeys , $n , $current);
}
}
function KingMonkey($m,$n){
for($i=1 ;$i
$monkeys [] = $i ;
}
killMonkey($monkeys , $n );
}
KingMonkey(10,3);
?>
全部回答
1樓守給你的承諾
2021-01-15 11:06
一群猴子排成一圈,按1,2,...,n依次編号。然後從第1隻開始數,數到第m隻,把它踢出圈,從它後面再開始數,再數到第m隻,在把它踢出去...,如此不停的進行下去,直到最後隻剩下一隻猴子為止,那隻猴子就叫做大王。要求程式設計模拟此過程,輸入m、n, 輸出最後那個大王的編号。
約瑟夫算法
function king($m ,$n)
{
//構造數組,模拟猴子數量并排隊
for($i=1 ;$i
$arr[] = $i ;
}
$i = 0 ; //設定數組指針
while(count($arr)>1)
//當數組元素個數大于1的時候
{
//周遊數組,判斷目前猴子是否為出局序号,如果是則出局,否則放到數組最後
if(($i+1)%$n ==0) {
unset($arr[$i]) ;
} else {
array_push($arr ,$arr[$i]) ; //本輪非出局猴子放數組尾部
unset($arr[$i]) ; //删除
}
$i++ ;
}
return $arr ;
}
2樓 深知你是夢
2021-01-15 09:45
"; array_splice($monkeys , $current , 1); var_dump($monkeys); killmonkey($monkeys , $n , $current); } } function kingmonkey($m,$n){ for($i=1 ;$i
我要舉報
如以上資訊為低俗、色情、不良、暴力、侵權、涉及違法等資訊,可以點下面連結進行舉報!
推薦資訊
大家都在看