填空题,直接暴力枚举即可。
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
//香蕉数量为i
for(int i = 5;i<10000;i++){
//第一只猴子
int banana = i;
if(banana%5 == 1){
//第一只猴子吃掉了剩下的 1 个香蕉
banana -= 1 ;
//还把自己那份藏起来了,也就是除去吃掉的那个香蕉,还剩4/5
banana *= 0.8;
//第二只猴子
if(banana %5 == 2){
//吃掉了剩下的 2 个香蕉
banana -= 2;
//把自己那份藏起来了
banana *= 0.8;
//第三只猴子
if(banana %5 == 3){
//吃掉了剩下的3个香蕉
banana -= 3;
//并把自己那份藏起来了
banana *= 0.8;
//第四只猴子
if(banana %5 == 4){
//吃掉了剩下的4只
banana -= 4;
//并把自己那份藏起来了
banana *= 0.8;
//第五只猴子(额外注意,在判断的时候需要考虑分成五堆的香蕉是否大于0,跑程序的时候不注意这个会出现第四只猴子就吃完香蕉的情况)
if(banana % 5 == 0 && banana >0){
//如果第五只猴子刚好分成五堆,那么就输出这个香蕉数量,也就是i,banana只是方便我们分香蕉的
System.out.println(i);
break;
}
}
}
}
}
}
}
}
这里的判断是不是很长呀?如果你发现有规律了的话,那么我们来使用for简化它
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
//香蕉数量为i
for(int i = 1;;i++){
int banana = i;
//进行分香蕉循环
for(int j = 1;j<6;j++){
//使用n来记录第五个猴子偷吃了0个香蕉的情况
int n = j%5;
if(banana % 5 == n){
//banana的数量必须大于0,才能分成五堆
if(n==0 && banana>0){
System.out.println(i);
return;
}
banana -= n;
banana *= 0.8;
}else{
//如果上面的判断有一项不符合,那么就可以结束这一次的分香蕉循环
break;
}
}
}
}
}
答案是: