- 文件名:[作业]
- 作者:〈漆黑〉
- 描述:〈 猴子来了
- 有只猴子在树林采了100根香蕉堆成一堆,猴子家离香蕉堆50米,猴子打算把香蕉背回家,每次最多能背50根,可是猴子嘴馋,每走一米要吃一根香蕉,问猴子最多能背回家几根香蕉。
- 如果只能算整根的话,猴子最后可以搬回家16根,中间路上不得已扔掉两根,或者全部吃完。
- 猴子走到16米的时候,还剩34根,放下18根香蕉,拿着16根往回走,走到香蕉堆正好吃完,再拿上那50根香蕉往家走,走到16米的时候,那里放着18根香蕉,用那18根补充满手里的,再往家走,走到家,剩16根,16米处扔掉两根
- 猴子走到17米的时候,还剩33根,放下16根香蕉,拿着17根往回走,走到香蕉堆正好吃完,再拿上那50根香蕉往家走,走到17米的时候,那里放着16根香蕉,用那16根补充手里的,手里有49根,距离家还有33米,再往家走,走到家,剩16根 〉
- 创建时间:2019.7.24
- 已完善
import java.util.Scanner;
public class Test {
public static void main(String[] args){
System.out.println( "猴子100个香蕉,距离家50米,一次最多搬50根,搬到家最多" + monkey(100, 50, 50) + "根。");
}
static int monkey(int sum, int dis, int carry){
if(carry < 2) return 0;
if(carry == 2){
if(dis > 1) return 0;
if(sum < 2) return 0;
return 1;
}
if(sum <= dis) return 0;
if(carry > sum) return sum - dis;
while(dis > 0){
if(sum % carry <= 2) sum = sum - (sum % carry);
sum -= (2 * ((sum - 1) / carry) + 1);
dis--;
}
return sum;
}
}