问题描述
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
}
}
}
}
}
}
}