李敏 |
|
|||
日歷
統計
導航常用鏈接留言簿(1)文章分類
文章檔案
相冊收藏夾它山之石聚賢莊搜索最新評論
|
A地有100個梨,猴子要把這100個梨搬到B地,A,B地之間的距離是50步,猴子一次只能搬50個梨,猴子每前進或后退一步都得吃一個梨,問到達B地最多剩多少個梨?最少需要幾步?
根據題意“A,B地之間的距離是50步,猴子一次只能搬50個梨。”所以猴子不可能直接這么從A地搬到B地,而是一定會中途返回,先把剩余的梨子放到某點,然后回到A地把剩余的梨子搬完,接著,當走到之前放置地點時,把之前剩余的梨子一起搬上,最后走到B地(往返的次數越少,則相對的得到的梨也越多,走的步數也越少),這里假設的是一次往返就能夠搬完全部的梨子。 假設第一次走到M步的時候返回: 50(猴子一次能夠搬梨的總數) 猴子吃掉的梨子數:n=M 此時剩余的梨子數:50-n 然而返回一趟后,剩余的梨子數:50-n-n --猴子返回時,身上帶著的是返回到A地時所要吃掉的梨子數(M),剩余的梨子(50-n-n)則留在了M地。 第二次從A地走到M步的時候: 50(猴子一次能夠搬梨的總數,此時也就是剩余的那50個梨子) 猴子吃掉的梨子數:n=M 剩余的梨子數:50-n 剩余的總梨子數: 第一次到M步時剩余的梨子數+第二次到M步時剩余的梨子數-走完剩余(50-M)步時所要吃掉的梨子數 (50-n-n )+(50-n)-(50-n)=50-2*n 所走的總步數: 第一次走的M步+第一次返回時走的M步+第二次走的M步+走完剩余(50-M)步 n + n + n + (50-n)=50+2*n M的范圍: 1 M最大值(M=n) 根據上面推出的剩余的總梨子數(50-2*n),即沒有剩余(梨子數為零)時M為最大值。 M=n=25 由于25無實際意義,故值為24。(可以求出最少剩多少個梨?最多需要幾步?) 2 M最小值(M=n) 猴子第一次返回到A地時剩余的梨子數+猴子第二次走到M步時剩余的梨子數<=50(猴子一次只能搬的梨子數) (50-n-n)+ (50-n)<=50 (M=n)>=16.6 M為整數,故>=17。 (可以求出最多剩多少個梨?最少需要幾步?) 算法代碼:(主要說明一下) 1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]()
|
![]() |
|
Copyright © 李敏 | Powered by: 博客園 模板提供:滬江博客 |