ylbtech-Arithmetic:Console-算法[for,if,break]-五個好朋友分蘋果
1.A,案例
-- ========================================================
-- ylb:算法
-- Type:算法[for,if,break]
-- munu:五個好朋友分蘋果
-- thankyou:sunshine
-- 13:02 2012/3/17
-- ========================================================
五個好朋友分一堆蘋果,第一個人把蘋果分成5份,為了公平,扔掉了多餘的1個蘋果,拿上自己一份走了。第二人來了,把剩餘的蘋果分成5份,扔掉多餘的1個,拿上自己一份走了。以後來的三個人都是這樣做的。那麼,最初有多少個蘋果呢?
分析:
根據分蘋果的方法我們可以看出,每個人分蘋果時都是扔掉1個後變成了5的整數倍,是以才能分成5份。那麼當這個人拿去一份後,剩餘的是4份蘋果,是以剩餘的數一定是4的整數倍。是以,每個人所看到的數目一定是減1後,既是5的整數倍,又是4的整數倍。是以可建構為:1+4+5+X(X為未知的正整數或0)。
設m為第i個人所看到的蘋果數,n代表第i-1個人所看的到蘋果數,那麼這兩個數字應該滿足這樣的關系:m=(n-1)/5*4
例如當i=2時,代表第2個人所看到的蘋果數=(第一個人看到的蘋果數減去1個,再分成5份,因為第一個人拿走1份,是以乘以4份)。是以,這個表達式成立。
是以m和n都應該滿足1+4*5*X這個表達式。這是一個二重循環,外循環不能确定執行多少次,隻好總最小數21開始試算。内循環判斷蘋果數是否能被5整除,如果不能被整除則退出内循環,外循環的蘋果數直接加20。因為20是滿足既能被5整除,又能被4整除的最小數。
從1開始的原因1是最小的滿足1=1+4*5*X的正整數(當X為0時)。
1.B,解決方案


1.C,運作結果