Python經(jīng)典五人分魚(yú)實(shí)例講解
A、B、C、D、E 五人在某天夜里合伙去捕魚(yú),到第二天凌晨時(shí)都疲憊不堪,于是各自找地方睡覺(jué)。
日上三桿,A 第一個(gè)醒來(lái),他將魚(yú)分為五份,把多余的一條魚(yú)扔掉,拿走自己的一份。
B 第二個(gè)醒來(lái),也將魚(yú)分為五份,把多余的一條魚(yú)扔掉拿走自己的一份。 。
C、D、E依次醒來(lái),也按同樣的方法拿魚(yú)。
問(wèn)他們至少捕了多少條魚(yú)?
def main():
fish = 1
while True:
total, enough = fish, True
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
enough = False
break
if enough:
print(f'總共有{fish}條魚(yú)')
break
fish += 1
if __name__ == '__main__':
main()
實(shí)例擴(kuò)展:
#Python3 實(shí)例--Python 五人分魚(yú)
print("Python3 實(shí)例--Python 五人分魚(yú)")
#原則:
'''日上三桿,A 第一個(gè)醒來(lái),他將魚(yú)分為五份,把多余的一條魚(yú)扔掉,拿走自己的一份。
B 第二個(gè)醒來(lái),也將魚(yú)分為五份,把多余的一條魚(yú)扔掉拿走自己的一份。 。
C、D、E依次醒來(lái),也按同樣的方法拿魚(yú)。
問(wèn)他們臺(tái)伙至少捕了多少條魚(yú)?(x)
A:(x-1)/5
B:(x-((x-1)/5)-1)/5
C:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5
D:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1)
E:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1))-1)
'''
def main():
fish = 1
while True:
#默認(rèn)魚(yú)的數(shù)量是夠分的,enough = True
total, enough = fish, True
#循環(huán)步驟:每一個(gè)人都按照相同的原則分魚(yú)
for _ in range(5):
#"_"符號(hào)在循環(huán)中不會(huì)用到,起的是循環(huán)次數(shù)的作用,可以看作和i,j是等效的
#如果正好夠5個(gè)人分,不需要扔掉一條
if (total - 1) % 5 == 0:
#除了第一個(gè)人,剩下的魚(yú)的總數(shù)為:(total - 1) // 5 * 4,
# 但是此時(shí)流程還沒(méi)有走完,還未計(jì)算魚(yú)的總數(shù)
total = (total - 1) // 5 * 4
#如果不夠一個(gè)人分,enough = False,
# 說(shuō)明魚(yú)的數(shù)量不是最少的,還需要每一個(gè)重復(fù)步驟上加一條,跳出循環(huán)
else:
enough = False
break
#判斷魚(yú)是不是夠分,而且魚(yú)的總數(shù)取的是最小值
if enough:
#若是,輸出魚(yú)的總數(shù),結(jié)束程序
print(f'總共有{fish}條魚(yú)')
break
#魚(yú)的數(shù)量循環(huán)加1
fish += 1
main()
到此這篇關(guān)于Python經(jīng)典五人分魚(yú)實(shí)例講解的文章就介紹到這了,更多相關(guān)Python 五人分魚(yú)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之最近鄰kNN分類(lèi)器
這篇文章主要介紹了python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之最近鄰kNN分類(lèi)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Python實(shí)現(xiàn)識(shí)別圖片為文字的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python如何不調(diào)用三方收費(fèi)接口,照樣實(shí)現(xiàn)識(shí)別圖片為文字的功能。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-08-08
Python使用爬蟲(chóng)爬取靜態(tài)網(wǎng)頁(yè)圖片的方法詳解
這篇文章主要介紹了Python使用爬蟲(chóng)爬取靜態(tài)網(wǎng)頁(yè)圖片的方法,較為詳細(xì)的說(shuō)明了爬蟲(chóng)的原理,并結(jié)合實(shí)例形式分析了Python使用爬蟲(chóng)來(lái)爬取靜態(tài)網(wǎng)頁(yè)圖片的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
python利用pyttsx3 API實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音處理
這篇文章主要為大家詳細(xì)介紹了Python如何利用pyttsx3 API實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音處理,文中有詳細(xì)的示例代碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
Python?PaddleGAN實(shí)現(xiàn)調(diào)整照片人物年齡
這篇文章主要介紹了通過(guò)PaddleGAN實(shí)現(xiàn)照片人物的老年化和年輕化處理,文中的示例代碼講解有效,對(duì)我們學(xué)習(xí)或工作有一定的幫助,感興趣的可以學(xué)習(xí)一下2021-12-12
用Python和MD5實(shí)現(xiàn)網(wǎng)站掛馬檢測(cè)程序
系統(tǒng)管理員通常從svn/git中檢索代碼,部署站點(diǎn)后通常首先會(huì)生成該站點(diǎn)所有文件的MD5值,如果上線后網(wǎng)站頁(yè)面內(nèi)容被篡改(如掛馬)等,可以比對(duì)之前生成MD5值快速查找去那些文件被更改,為了使系統(tǒng)管理員第一時(shí)間發(fā)現(xiàn),可結(jié)合crontab或nagios等工具2014-03-03

