您的位置:首页 > 编程语言 > Java开发

java算法——猴子吃桃问题

2016-07-28 20:30 417 查看
//猴子吃桃问题

//具体问题为:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。

//第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。

//到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?

//思路:距离现在的天数作为变量

//f(1)=1;

//f(2)=f(3)-(f(3)/2-1)=f(3)/2-1

//f(n)=f(n+1)/2-1

//f(n)=2f(n-1)+2 递推公式

package com.suanfa;

public class MonkeyEatPeach {

public static void main(String[] args) {
System.out.println("第一天摘下来桃子数量:"+peaches(10));
System.out.println("第一天摘下来桃子数量:"+f(10));
}
//方法一:直接用公式计算
static int peaches(int day)
{
int total;//设桃子的总数
total=(int)Math.pow(2, day-1)+(int)Math.pow(2, day)-2;
return total;
}

//方法二:递推公式
static int f(int n) //n表示距离现在的天数
{
if(n==1)
{
return 1;
}
else
{
return 2*f(n-1)+2;
}
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java算法