Python經(jīng)典五人分魚實(shí)例講解
A、B、C、D、E 五人在某天夜里合伙去捕魚,到第二天凌晨時都疲憊不堪,于是各自找地方睡覺。
日上三桿,A 第一個醒來,他將魚分為五份,把多余的一條魚扔掉,拿走自己的一份。
B 第二個醒來,也將魚分為五份,把多余的一條魚扔掉拿走自己的一份。 。
C、D、E依次醒來,也按同樣的方法拿魚。
問他們至少捕了多少條魚?
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}條魚')
break
fish += 1
if __name__ == '__main__':
main()
實(shí)例擴(kuò)展:
#Python3 實(shí)例--Python 五人分魚
print("Python3 實(shí)例--Python 五人分魚")
#原則:
'''日上三桿,A 第一個醒來,他將魚分為五份,把多余的一條魚扔掉,拿走自己的一份。
B 第二個醒來,也將魚分為五份,把多余的一條魚扔掉拿走自己的一份。 。
C、D、E依次醒來,也按同樣的方法拿魚。
問他們臺伙至少捕了多少條魚?(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)魚的數(shù)量是夠分的,enough = True
total, enough = fish, True
#循環(huán)步驟:每一個人都按照相同的原則分魚
for _ in range(5):
#"_"符號在循環(huán)中不會用到,起的是循環(huán)次數(shù)的作用,可以看作和i,j是等效的
#如果正好夠5個人分,不需要扔掉一條
if (total - 1) % 5 == 0:
#除了第一個人,剩下的魚的總數(shù)為:(total - 1) // 5 * 4,
# 但是此時流程還沒有走完,還未計(jì)算魚的總數(shù)
total = (total - 1) // 5 * 4
#如果不夠一個人分,enough = False,
# 說明魚的數(shù)量不是最少的,還需要每一個重復(fù)步驟上加一條,跳出循環(huán)
else:
enough = False
break
#判斷魚是不是夠分,而且魚的總數(shù)取的是最小值
if enough:
#若是,輸出魚的總數(shù),結(jié)束程序
print(f'總共有{fish}條魚')
break
#魚的數(shù)量循環(huán)加1
fish += 1
main()
到此這篇關(guān)于Python經(jīng)典五人分魚實(shí)例講解的文章就介紹到這了,更多相關(guān)Python 五人分魚內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python批量導(dǎo)入數(shù)據(jù)進(jìn)Elasticsearch的實(shí)例
今天小編就為大家分享一篇python批量導(dǎo)入數(shù)據(jù)進(jìn)Elasticsearch的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
對python中的 os.mkdir和os.mkdirs詳解
今天小編就為大家分享一篇對python中的 os.mkdir和os.mkdirs詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python中使用glob和rmtree刪除目錄子目錄及所有文件的例子
這篇文章主要介紹了python中使用glob和rmtree刪除目錄子目錄及所有文件的例子,需要的朋友可以參考下2014-11-11
Python基于scipy實(shí)現(xiàn)信號濾波功能
本文將以實(shí)戰(zhàn)的形式基于scipy模塊使用Python實(shí)現(xiàn)簡單濾波處理。這篇文章主要介紹了Python基于scipy實(shí)現(xiàn)信號濾波功能,需要的朋友可以參考下2019-05-05
python 網(wǎng)絡(luò)爬蟲初級實(shí)現(xiàn)代碼
這篇文章主要介紹了python 網(wǎng)絡(luò)爬蟲初級實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-02-02
python 實(shí)現(xiàn)批量替換文本中的某部分內(nèi)容
今天小編就為大家分享一篇python 實(shí)現(xiàn)批量替換文本中的某部分內(nèi)容,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
pandas的連接函數(shù)concat()函數(shù)的具體使用方法
這篇文章主要介紹了pandas的連接函數(shù)concat()函數(shù)的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

