猴子吃桃问题 猴子每天吃桃子总数的一半多一个,吃了十天,最后还剩一个桃子,求桃子的总数 用JAVA弄出来具体每一步的意思最好能说明下 我新手 刚学这个 不太会

问题描述:

猴子吃桃问题 猴子每天吃桃子总数的一半多一个,吃了十天,最后还剩一个桃子,求桃子的总数 用JAVA弄出来
具体每一步的意思最好能说明下 我新手 刚学这个 不太会

周一帮你看
public class Du {
public static void main(String[] args) {
final int days = 10;//假设10天吃完,这个可以修改任意天数
int peach = calcPeachForMonkey(days);

System.out.println("Total " + peach + " for a monkey in " + days + " days");
}
private static int calcPeachForMonkey(final int days) {
int peach = 0;//初始化桃子总数为0

while(true){
int temp = peach;
int day = 0;

while(peach >= 0){
peach = peach /2 - 1;//验证每天吃一半,再吃掉一个
day++;//每次吃掉一半多一个,天数+1
}

if(day == days){//如果天数刚好和要吃掉桃子的天数相等,就找到桃子总数了
return temp;
}

peach = temp + 2;//每次桃子+2,因为吃掉一半那桃子总数必定为偶数
}
}
}
------------------------------10天测试
Total 1022 for a monkey in 10 days
-----------------7天吃完测试
Total 126 for a monkey in 7 days