天天看點

編碼練習:猴子撿桃

插入前面:這段内容本來在下面猴子分桃題目之前是沒有的,想看題,可以先看後面的題目,然後看着插入在前面的關于遞歸實作下面問題的代碼,為什麼要突然放在前面,因為這是一部分比較重要的内容,是個思想鍛煉的結果和總結,另外最後嗎還給出了錯誤的代碼以及錯誤的原因可以對比理清思路:

編碼練習:猴子撿桃
編碼練習:猴子撿桃

如何思考用遞歸解決這個問題,根據前面兩個遞歸的編碼(約瑟夫環f(100)=f(99)+f(98),reserve連結清單方向)經驗,都有類似下面的遞歸代碼執行過程。

編碼練習:猴子撿桃

注意事項:在調用函數的時候,實參如果用比如這裡的time--或者time++,而不用time-1或者time+1會報錯。

另外的錯誤思路寫的錯誤的代碼:{思路錯誤的原因:第12步就錯誤了,調用函數會得到一個傳回值,這個傳回值要先進行%4判斷,然後才能接着進行/4*5+1的運算,然而這裡不是,是以造成了錯誤。}

編碼練習:猴子撿桃
編碼練習:猴子撿桃

1、猴子分桃:海灘上有一堆桃子,五隻猴子來分,第一隻猴子把這堆桃子憑據分為五份,多了一個,這隻猴子把多的一個扔入海中,拿走了一份,第二隻猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三,第四,第五隻猴子都是這樣做的,問海灘上原來最少有多少個桃子?

編碼練習:猴子撿桃
編碼練習:猴子撿桃
編碼練習:猴子撿桃