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