Python编程算法【十一】 出售金鱼
【案例内容】
小明将一缸金鱼分5次卖出:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/3条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。编程求出原来鱼缸中共有多少条金鱼。
【解题思路】
本题我们可以倒着求,假设第5次没卖前的鱼为 fish == 11,则根据题意可求出,第4次没卖前的鱼为 (fish + 1 / 5) * 5 / ( 5 - 1),然后将计算所得的值,重新赋值给 fish,则以此类推,可推出第3次没卖前的鱼为 (fish + 1 / 4) * 4 / ( 4 - 1),第2次没卖前的鱼为 (fish + 1 / 3) * 3 / ( 3 - 1),第1次没卖前的鱼为 (fish + 1 / 2) * 2 / ( 2 - 1),从而可以看出,将设一个变量 i ,让其从5递减到2即可算出原来鱼缸里的鱼数。
【Python代码】

本题也可以用递归函数求解。这类题型,只要找到规律,按规律列出公式,通常都要用到循环来求解,那么问题就能迎刃而解。