題目:海灘上有一堆桃子,五只猴子來分.第一只猴子把這堆桃子憑據分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?
思路:可以從第五個猴子開始,從后往前推。最后一個猴子分成五份還多一個,假設最后一個猴子拿1個桃,最后至少有5*1+1=6個桃子。
請你試一試,編寫程序計算原來有多少個桃子。
#題目:海灘上有一堆桃子,五只猴子來分.第一只猴子把這堆桃子憑據分為五份, #多了一個,這只猴子把多的一個扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份, #又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的, #問海灘上原來最少有多少個桃子? #思路:可以從第五個猴子開始,從后往前推。最后一個猴子分成五份還多一個,假設最后一個猴子拿1個桃,最后至少有5*1+1=6個桃子。 i=1 #第5只猴子拿走的桃子的個數 count = 0 #海灘上剩下的桃子數 while True: count= i*5+1 #第5只拿之前,海灘上剩下的桃子數 for j in range(0,4): #推斷第4、3、2、1只猴子情況 if count % 4 !=0: #剩下的桃子數必須能被4整除 flag = False #flag用來判斷本次i的取值嘗試是否成功,不成功就繼續嘗試 i += 1 break else: count = (count/4)*5+1 flag = True if flag == True: print(count) print(i) break
運行結果:
3121.0
255