Python編程算法【十一】 出售金魚
【案例內(nèi)容】
小明將一缸金魚分5次賣出:第1次賣出全部的一半加1/2條;第2次賣出余下的三分之一加1/3條;第3次賣出余下的四分之一加1/4條;第4次賣出余下的五分之一加1/5條;最后賣出余下的11條。編程求出原來魚缸中共有多少條金魚。
【解題思路】
本題我們可以倒著求,假設(shè)第5次沒賣前的魚為 fish == 11,則根據(jù)題意可求出,第4次沒賣前的魚為?(fish + 1 / 5) * 5 / ( 5 - 1),然后將計(jì)算所得的值,重新賦值給 fish,則以此類推,可推出第3次沒賣前的魚為 (fish + 1 / 4)?* 4?/?( 4?- 1),第2次沒賣前的魚為?(fish + 1 / 3)?* 3?/?( 3?- 1),第1次沒賣前的魚為?(fish + 1 / 2)?* 2?/?( 2?- 1),從而可以看出,將設(shè)一個(gè)變量 i ,讓其從5遞減到2即可算出原來魚缸里的魚數(shù)。
【Python代碼】

本題也可以用遞歸函數(shù)求解。這類題型,只要找到規(guī)律,按規(guī)律列出公式,通常都要用到循環(huán)來求解,那么問題就能迎刃而解。
標(biāo)簽: