Java实现的猴子吃桃问题算法示例

网友投稿 318 2023-03-26


Java实现的猴子吃桃问题算法示例

本文实例讲述了java实现的猴子吃桃问题算法。分享给大家供大家参考,具体如下:

猴子吃桃问题

概述:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个;第二天又将剩下的桃子吃掉了一半,又多吃了一个;以后每天都吃前一天身下的一半零一个,到第n天再想吃的时候就只剩下一个桃子了,求第一天共摘了多少个桃子?

思路及演算步骤(求出共摘多少桃子的函数表达式):

离现在的天数作为变量

f(1) = 1 (剩下桃子的数目)

f(2) = f(3) - (吃掉了一些) =   f(3) -(f(3)/2+1)   =   f(3)/2-1

....

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

所以可以得到递推公式:

f(n-1) = f(n)/2-1   =>  2f(n-1) =  f(n) -http:// 2  => f(n)=2f(n-1) +2 (这是我UZUBeumP们想要的公式)

然后可以求出离现在任何天数时,猴子共摘下的桃子!

例如f(10)意思就是离现在10天的时候(10天以前猴子拥有的桃子的个数)!

下面给出具体的代码:

pachttp://kage javastudy;

import java.util.Scanner;

public abstract class Testit2 {

// 猴子吃桃问题

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int n;

n = in.nextInt();

System.out.println(f(n));

UZUBeumPin.close();

}

static int f(int n) {

if (n == 1) //离现在只有一天的时候那就只剩下一个!

return 1;

return 2 * f(n - 1) + 2;

}

}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:vue获取input输入值的问题解决办法
下一篇:maven多模块工程打包部署的方法步骤
相关文章

 发表评论

暂时没有评论,来抢沙发吧~