问题描述
5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5猴子醒来,重新把香蕉均分成5堆,此时正好不剩!
请计算一开始最少有多少个香蕉?
思路
- 条件1:n%5==1
- 条件2:条件1满足,n%5==2
- 条件3:条件2满足,n%5==3
- 条件4:条件3满足,n%5==4
- 条件5:条件4满足,n%5==0&&n!=0
代码实现
fun main(){
var i:Int = 6
var n:Int = 6
while (true){
i++
n = i
if (n%5==1){
n = (n-1)/5*4
if (n%5 == 2){
n = (n-2)/5*4
if (n%5==3){
n = (n-3)/5*4
if (n%5 == 4){
n = (n-4)/5*4
if (n%5 == 0&&n!=0){
print("香蕉的总数为 $n")
break
}
}
}
}
}
}
}
这篇博客讨论了一个有趣的数学问题——5只猴子分香蕉。每只猴子醒来后,将香蕉均分成5堆,每次都余下一个,最后一只猴子能够平均分配且不剩余。通过迭代计算,得出初始香蕉数量至少为312。该问题展示了数学在解决实际问题中的应用。

355

被折叠的 条评论
为什么被折叠?



