資訊內容
python編程練習-分桃子
題目:海灘上有一堆桃子,五只猴子來分.第一只猴子把這堆桃子憑據分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?
思路:可以從第五個猴子開始,從后往前推。最后一個猴子分成五份還多一個,假設最后一個猴子拿1個桃,最后至少有5*1+1=6個桃子。
請你試一試,編寫程序計算原來有多少個桃子。
參考答案思路及程序代碼:
假設第五只猴子拿走j個桃,那么最后海灘上還剩x個桃,x=4*j,開始倒推,第五只猴子沒拿之前海灘上就有x/4*5+1個桃子。
根據這個思路,我們從j=1開始,反推每只猴子拿桃之前海灘上桃子的個數,這個數需要滿足一個條件就是能被4整除(上一只猴子拿走之后剩下的均分了4等份)如果每次桃子的個數都滿足,那么就得到了結果。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
i = 0 #控制循環次數,(第五只到第一只)
j = 1 #最后一個猴子拿走的桃子個數
x = 0 #剩下的桃子個數
while (i < 5) :
x = 4 * j #第五只猴拿走后海灘剩下桃的個數
for i in range(0,5) :
if(x%4 != 0) :
break
else :
i += 1
x = x/4 * 5 +1 #上一只猴拿走后海灘剩下桃的個數
j += 1
print (x)
本站部分內容轉載自網絡,如有侵權請聯系管理員及時刪除。
