猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时,
想再吃时(即还没吃),发现只有1个桃子了。问题:最初共多少个桃子?
package HspLearningoop;
public class Demon08Monkey {
// 猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时,
// 想再吃时(即还没吃),发现只有1个桃子了。问题:最初共多少个桃子?
public static void main(String[] args) {
Z t = new Z();
int day = 5;
int peachNum = t.peach(day);
if (peachNum != -1){
System.out.println("第"+day+"有"+peachNum +"个桃子!");
}
}
}
//思路分析逆推
// 1.day = 10时有1个桃子
// 2. day =9时有(day10 +1)* 2 =4
// 3. day = 8时有(day9 + 1)* 2 =10
// 4.规律就是前一天的桃子=(后一天的桃子+1)*25.递归
class Z{
public int peach(int day) {
if (day == 10) {
return 1;
} else if (day >= 1 || day <= 9) {
return (peach(day+1)+1)*2;
}else {
System.out.println("day在1~10之间");
return -1;
}
}
}
网友评论