五人分鱼
1、题目
A、B、C、D、E五人在某天夜里合伙捕鱼,最后疲惫不堪各自睡觉。
第二天A第一个醒来,他将鱼分为5份,扔掉多余的1条,拿走自己的一份。
B第二个醒来,也将鱼分为5份,扔掉多余的1条,拿走自己的一份。
然后C、D、E依次醒来也按同样的方式分鱼,问他们至少捕了多少条鱼?
2、解题思路
使用穷举法,假设有x条鱼,那么 x-1除以5可以整除;
剩下的鱼的数量为((x-1)/5)*4,这个数量同样满足前边的条件。
python代码如下:
def fish():
""" 五人分鱼 """
fish = 1
while True:
total = fish
enough = True
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
enough = False
break
if enough:
print(fish)
break
fish += 1
归并排序
排序思想:
把一个数