幾個PHP演算法題

2022-07-17 02:06:07 字數 1059 閱讀 5561

有5個人偷了一堆蘋果,準備在第二天分贓。晚上,有一人遛出來,把所有菜果分成5份,但是多了乙個,順手把這個扔給樹上的猴了,自己先拿1/5藏了。沒想到其他四人也都是這麼想的,都如第乙個人一樣分成5份把多的那乙個扔給了猴,偷走了1/5。第二天,大家分贓,也是分成5份多乙個扔給猴了。最後一人分了乙份。問:共有多少蘋果?

php**如下:

for ($i = 1; ; $i++)}}

}}

}}一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下乙隻猴子為止,那只猴子就叫做大王。要求程式設計模擬此過程,輸入m、n, 輸出最後那個大王的編號。

function king($n, $m) else

$i++;

}return current($monkeys);}

$a = king(5, 2);

var_dump($a);

漢諾塔(又稱河內塔)問題是印度的乙個古老的傳說。開天闢地的神勃拉瑪在乙個廟裡留下了三根金剛石的棒,第一根上面套著64個圓的金片,最大的乙個在底下,其餘乙個比乙個小,依次疊上去,廟裡的眾僧不倦地把它們乙個個地從這根棒搬到另一根棒上,規定可利用中間的一根棒作為幫助,但每次只能搬乙個,而且大的不能放在小的上面。解答結果請自己執行計算,程式見尾部。面對龐大的數字(移動圓片的次數)18446744073709551615,看來,眾僧們耗盡畢生精力也不可能完成金片的移動。

後來,這個傳說就演變為漢諾塔遊戲:

1.有三根桿子a,b,c。a桿上有若干碟子

2.每次移動一塊碟子,小的只能疊在大的上面

3.把所有碟子從a杆全部移到c桿上

經過研究發現,漢諾塔的破解很簡單,就是按照移動規則向乙個方向移動金片:

如3階漢諾塔的移動:a→c,a→b,c→b,a→c,b→a,b→c,a→c

此外,漢諾塔問題也是程式設計中的經典遞迴問題。

function hanoi($n,$x,$y,$z)else

}hanoi(3,'a','b','c');

js實現幾個演算法題

題目 字串消除 給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行...

遇到的幾個演算法題

1 如何快速求得與某個數平方根最接近的整數 數學上平方根一般由級數展開求得。但是此處只求其近似整數,用二分查詢法,複雜度為log n 2 有乙個幾個t的大檔案,記錄了若干 記錄,需要累加計算總價,如何算。現在計算機記憶體有限。3 有若干個大檔案,裡面儲存了各個url的訪問記錄,順序是亂的,要求將各個...

幾個演算法或邏輯題

2014 6 14 php 在數值中加入千位分隔符的方法 為了方便閱讀,我們通常會在一串長數字中加入 千位分隔符 即將 1234567890.11 轉換成 1,234,567,890.11 這樣的任務交給正規表示式來處理再方便不過了,本文就介紹了這個問題的解決方法。語法 code 0 9 0 9 0...