题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了 一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分 成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只 猴子都是这样做的,问海滩上原来最少有多少个桃子?
解决方法一:
强行for循环:
分析:
设总共的桃子有x个 第一只猴子分:x /5多了一个,还剩(x-1)*4/5=x2 第二只猴子分:x2/5多了一个,还剩(x2-1)*4/5=x3 第三只猴子分:x3/5多了一个,还剩(x3-1)*4/5=x4 第四只猴子分:x4/5多了一个,还剩(x4-1)*4/5=x5 第五只猴子分:x5/5多了一个,还剩(x5-1)*4/5=x6 即:第五只分,还剩:n=(((((((((x-1)*4/5)-1)*4/5)-1)*4/5)-1)*4/5)-1)*4/5>=1 且,第剩下四只猴子可以均分:n%4 == 0
for x in range(1,10000):
for n in range(1,1000):
n = (((((((((int(x) - 1) * 4 / 5) - 1) * 4 / 5) - 1) * 4 / 5) - 1) * 4 / 5) - 1) * 4 / 5
if n%4 == 0:
print(x)
else:
break
解决方法二
强行手动推算,得出公式
假设第二个猴子拿了 x2 个桃子,第三个猴子拿了 x3 个,那么有这么个关系: 4 x2 = 5 x3 + 1 , 这是类似于 4 a = 5 b + 1 的式子。毫无疑问的是 a 、b 都是整数了。4 a = 5 b + 1 = 4 b + (b + 1), 那么可想而知 b + 1 = 4 k,于是有: a = 5 k - 1 b = 4 k - 1 因为 (x1, x2), (x2, x3), (x3, x4),(x4, x5)