public class MonkeyEat
{
public static void main(String[] args)
{
AA a =new AA();
int n =1;
int b=a.peach(n);
if(b!=-1){
System.out.println("第"+n+"有"+b+"个桃子");
}
}
}
class AA
{
//猴子吃桃问题:有一堆桃子,猴子第一天吃了其中的一半,并在多吃一个
//以后每天猴子都吃其中的一半,然后在多吃一个。当到第10天时,
//想再吃(即还没有吃完),发现只有一个桃子。问题:最初共多少个桃子?
/*思路 逆推
1.day = 10 时 有一个桃子
2.day = 9 时 有(day10+1)*2 = 4
3.day = 8时 有(day9+1)*2=10
4.规律 前一天的桃子=(后一天的桃子+1)*2
5.递归
*/
public int peach(int day){
if(day==10){
//第10天只有一个桃子
return 1;
}else if(day>=1&&day<=9){
return (peach(day+1)+1)*2;
}else{
System.out.println("day在1-10");
return -1;
}
}
}
Java学习-猴子吃桃
最新推荐文章于 2024-02-14 09:52:28 发布