天天看點

猴子選大王php語言,猴子選大王 方法:遞歸 語言: php

猴子選大王 方法:遞歸 語言: 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

我要舉報

如以上資訊為低俗、色情、不良、暴力、侵權、涉及違法等資訊,可以點下面連結進行舉報!

推薦資訊

大家都在看