先来一个简单一点的题目:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?(提示:采用逆向思维的方向 ,从后向前推算)

解析:第十天只有一个桃子,那么第九天就应该有(1+1)*2=4个,通过倒退我们可以推算出公式应该是 前一天的桃子数=(后一天桃子数+1)*2。

代码如下:

var peaches = 1;for (var days = 1; days <= 9; days++) {peaches = (peaches + 1) * 2;}console.log(peaches);

下面的这道题目跟上面的很相似。

题目:

海滩上有一堆桃子,五个猴子来分。 第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三第四第五只猴子都是这样的,问海滩上原来最少有多少个桃子?

其实这个题目的关键就在于找到桃子的公式,然后循环五次。

首先我们用倒推法,先假设最后一个猴子拿到了i个桃子,那么最后一个猴子在没有分桃之前应该有a=(5*i+1)个桃子。

再往前推,第四个猴子在没有分桃之前有b=a/(4/5)+1。第一个第二个第三个猴子也是同理。

代码如下:

    var peaches = 0; //最初的桃子数for (var i = 1;; i++) {var peaches = 5 * i + 1;for (monkeys = 1; monkeys < 5; monkeys++) {peaches = peaches / 4 * 5 + 1;//用第五个猴子拿之前的桃子数反推第四个猴子拿桃子前的数量//反推四次 拿走一份后 剩下4/5份桃子 反推就是 除以 4/5 即*5/4}if (peaches % 5 == 1) {console.log(peaches);break;//结束循环}}console.log(peaches);

javascript解决猴子分桃问题相关推荐

  1. java猴子分桃问题_通俗易懂、简单粗暴得解决猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  2. java 5只猴子分桃_通俗易懂、简单粗暴得解决猴子分桃问题

    c编程技巧-117个问题解决方案示例 79.2元 包邮 (需用券) 去购买 > 起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一 ...

  3. 通俗易懂、简单粗暴地解决各类猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  4. 猴子分桃问题的解决方法

    猴子分桃问题的解决方法 1 问题 1979年,李政道博士给中国科技大学少年班出过一道智趣题:5只猴子分一堆桃子,怎么也分不成5等分,只好先去睡觉,准备第二天分.夜里1只猴子偷偷爬起来,先吃掉一个桃子, ...

  5. java猴子分桃_算法——猴子分桃

    想做些有关"算法"的练习题,在网上无意间看到了一道很经典的算法题--猴子分桃,于是百度了一下,才发现这道题的相关文档很多很多,但最多的也就是使用C++或者Java来解决这道题,而自 ...

  6. 猴子分桃问题c语言程序设计,猴子分桃问题

    维普资讯 http://doc.wendoc.com 第 4期 高中数学教与学 .短文集锦. 猴子分桃问题 张亚军 (吉林省榆树市弓棚一中, 1 3 0 4 0 6 ) 这是一道流传很广的趣味数学问题 ...

  7. java海滩上有一,Java猴子分桃问题--三种算法

    海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五分,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,又多了一个,他同样把多的一个扔入海中,拿走了 ...

  8. 【C语言】利用递归解决猴子吃桃问题

    [C语言]利用递归解决猴子吃桃问题 参考文章: (1)[C语言]利用递归解决猴子吃桃问题 (2)https://www.cnblogs.com/ieybl/p/6597937.html 备忘一下.

  9. python猴子分桃_猴子分桃 - Ryan in C++ - 博客园

    猴子分桃的故事大体有两种描述: 描述 1 :五只猴子分桃.半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只:于是,它吃掉了一个,拿走了一堆.第二只猴子起来一看,只有四堆桃,于是把四堆合在一 ...

最新文章

  1. numpy、matplot、sklearn的安装与使用
  2. 修改Tomcat 6 默认的ROOT
  3. scratch创意小游戏_为何很多孩子都迷恋创意scratch?
  4. 缓存中间件-mac下Memcache 安装
  5. SpringCloud学习笔记012---SpringBoot启动时Caused by: java.lang.NoClassDefFoundError:
  6. 使用Word2010直接编辑、发布博客→博客园cnblogs
  7. U-Boot在FL2440上移植(四)----支持网卡DM9000和烧写yaffs文件系统
  8. 引擎工具开发的一些总结
  9. Mac系统镜像文件(Monterey-Sierra,加部分OS X)
  10. 计算机一级考试考什么呢,计算机一级考试考些什么呢
  11. python爬虫用AI技术-破解企业工商数据抓取+网络爬虫+网站数据采集+数据抓取遇到的三大问题
  12. mysql tungsten_通过tungsten replicator实现mysql多主一从的备份架
  13. cmd的注释符号是什么?
  14. 【JZOJ6354】最短路(tiring)
  15. 一招教你不用任何软件就能知道谁动过你的电脑并做了哪些详细的操作,比查看Recent文件访问记录更厉害的方法开机自动运行PSR录制截取电脑操作
  16. 容器化技术(Docker相关)
  17. 安装Ubuntu 16.04时出现:没有定义根文件系统,请到分区菜单修改
  18. golang —— go语言科学记数法使用
  19. JavaScript递归函数的几种写法
  20. 测试方法——因果图法和判定表法

热门文章

  1. React-native项目使用逍遥游模拟器运行
  2. 小姜的模拟学习日记_spectre使用
  3. D. Serval and Rooted Tree(思维+树形dp+二分辅助)
  4. 【GISer小O】JAVA后台的小白之路(一)_2 ——分分合合三剑客
  5. 网页连接服务器失败是怎么回事,网页怎么连接服务器失败是怎么回事
  6. 二进制换算十进制、八进制和十六进制。
  7. HarmonyOS:ListContainer实现表格
  8. 16、Redis手动创建集群
  9. android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
  10. android官方模拟器下载安装,网易MuMu模拟器