题目
标题:猴子分香蕉
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。 第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。 第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。 第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。 第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩! 请计算一开始最少有多少个香蕉。 需要提交的是一个整数,不要填写任何多余的内容。
答案
3141
注意事项
for循环中定义的i不能发生改变,也就是说需要另外定义一个变量来接受i,(i代表香蕉数量),并且最终输出的还是i
代码
public class Main {
//蓝桥杯要求class命名为Main,且无package
public static void main(String []args){
for(int i=1;;i++){
int sum = i; //用i表示香蕉的数量,因为后续会对i进行多次重新赋值,因此定义一个sum来接收i
if(sum%5==1){
sum = sum-1-sum/5;//猴子会吃掉多余的并藏起自己那份
if(sum%5==2){
sum = sum-2-sum/5;
if(sum%5==3){
sum = sum-3-sum/5;
if(sum%5==4){
sum = sum-4-sum/5;
if(sum%5==0&&sum!=0){
//最后香蕉数量不能为0
System.out.println(i); //最后输出的应当是i的值
break;
}
}
}
}
}
}
}
}