一百根香蕉,小猴子离家五十米,一次能拿50根香蕉,每1米吃一根,最多能有多少根香蕉搬回家?
此题我们可以这样考虑,由于猴子一次最多只能拿50根香蕉,那么当香蕉总数大于50根的时候,猴子就必须往返回起点再搬第二次,因此我们可以通过写一个循环来得出答案
public class Banana {
public static void main(String[] args) {
//m -- 猴子走的距离 n -- 香蕉的个数
for (int m = 1, n = 100; m <= 50; m++) {
//当香蕉个数>50时,猴子一趟搬不完需要往返
// 去->回->去 往返一米要吃3根香蕉
if (n>50){
n = n-3;
//当香蕉个数<50时,猴子一趟就可以搬完,此时一米吃一根香蕉
}else {
n--;
}
System.out.println("当走到"+m+"米时,所剩香蕉根数为"+n);
}
}
}
控制台打印如下
当走到1米时,所剩香蕉根数为97
当走到2米时,所剩香蕉根数为94
当走到3米时,所剩香蕉根数为91
...
...
当走到15米时,所剩香蕉根数为55
当走到16米时,所剩香蕉根数为52
当走到17米时,所剩香蕉根数为49
//此时的香蕉个数<50,后面再拿香蕉便不需要往返,一次-1
当走到18米时,所剩香蕉根数为48
当走到19米时,所剩香蕉根数为47
当走到20米时,所剩香蕉根数为46
...
...
当走到48米时,所剩香蕉根数为18
当走到49米时,所剩香蕉根数为17
当走到50米时,所剩香蕉根数为16
因此我们最终得到的结果为:最多能有16根香蕉搬回家