五人捕鱼python
- 题目
题目
A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。
问他们至少捕了多少条鱼?
- 两个方法都比较笨 但容易理解
i = 1
while True:
b = (i - 1) * 4 / 5
c = (b - 1) * 4 / 5
d = (c - 1) * 4 / 5
e = (d - 1) * 4 / 5
# b c d e 分别是B C D E四个人醒来的时候看到的剩下的鱼!
# 所以应该满足 除以5余1 的条件
if b % 5 == 1 and c % 5 == 1 and d % 5 == 1 and e % 5 == 1:
# 满足条件的 i 就是总数
print(i)
break
i += 1
- 方法2 循环求解
# 估摸着就几千,所以循环设置了10000次,实际到了3121就停下来了,可以考虑递归
for i in range(10000):
if (i * 5 + 1) % 4 == 0:
d = (i * 5 + 1) / 4
if (d * 5 + 1) % 4 == 0:
c = (d * 5 + 1) / 4
if (c * 5 + 1) % 4 == 0:
b = (c * 5 + 1) / 4
if (b * 5 + 1) % 4 == 0:
a = (b * 5 + 1) / 4
s = a * 5 + 1
print(s)
break