貓吃老鼠演算法

2021-06-02 00:55:17 字數 717 閱讀 3308

曾經一道面試題,

大概意思是:有乙隻很強大的貓咪,喜歡把抓來的n只老鼠們排成乙個佇列,然後設乙個步長值k,先吃掉第一隻後,再每隔k只再吃,

吃完一輪後再按上面規則重新開始下一輪,直到剩下最後乙隻老鼠為止,貓咪為了保持生態平衡就放了這只老鼠~ 有只老鼠很聰明,他能很準確的計算出最後放生的位置,請用程式寫出來。

例如:n=10,k=1時,8號位置的老鼠是存活的;n=6,k=1時,4號存活。

n(n >= 1) , k(n > k >= 1)

function eatmouse($wholemouse,$k)

//吃掉第乙個

array_shift($wholemouse);

$count = 0;

foreach($wholemouse as $key => $val)

else

}return eatmouse($wholemouse,$k);

}function start($n,$k)

$wholemouse = array();

for($i=0;$i < $n;$i++)

return eatmouse($wholemouse,$k);

}$n = 10; //老鼠總數

$k = 1; //步長值

$livepos = start($n,$k);

print_r($livepos);

貓吃老鼠問題

今天在看雪看到這個 貓吃老鼠問題 的帖子,和當初學程式設計時的乙個叫做 約瑟夫環問題 類似。自己按照數學的方法分析了一下,得到乙個數學演算法。問題描述 現有n個老鼠圍成一圓圈,有乙隻貓從任意位置開始吃老鼠,每次都隔乙個老鼠吃,請給出最後乙個老鼠的編號?題目要求是任給老鼠數n,輸出貓最後吃的老鼠的編號...

程式設計 貓老鼠主人

問題 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。分析 從這句話,我們可以獲得兩個資訊 1 涉及到三個角色,貓,老鼠和主人。因此,顯然要定義三個類 cat,mouse 和master 至於這三個類之間的關係,看你如何選擇實現的方式 2 當貓發出乙個動作時,老鼠和主人都會做出自己的反應。因此,第乙個...

習題 168 貓捉老鼠

有乙隻很霸道的貓,捉來好多好多老鼠,然後,這只貓就開始開大餐了。但為了顯得它與眾不同,它用了乙個很特別的就餐順序 它先定好步長k,然後它吃掉第1個位置上的,然後再每隔k只再吃乙隻老鼠 一輪結束後,它再次從第1個位置開始繼續吃,直到最後只剩下乙隻老鼠為止。而這最後乙隻老鼠這只貓會放走,因為它不想破壞生...