猴子分桃问题(JAVA实现)

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

分析:

 个人误区:求海滩上原来最少有多少个桃子时,会误以为最后一只猴子分得的桃子为1个,进而进行计算。这是错误的。因为如果为1的话,那么第四层在被拿走一份后的桃子数应该为1*5+1 = 6,而6%4!=0。

代码:

 public static void main(String[] args) {//猴子分桃问题int lastNum = 1;//假设最后一个猴子分得的桃子数为1,每次自增1int firstNum = 0;//初始桃子数,每次计算当前桃子数的上一层数目int flag = 1;//标记当前是第几只猴子,1-->最后一只,5-->第一只int monkeyNum = 5;//猴子数目while(true) {flag = 1;firstNum = monkeyNum * lastNum + 1;for(int i = monkeyNum; i >= 1; i--) {if(firstNum % (monkeyNum - 1) == 0) {firstNum = firstNum / (monkeyNum - 1) * monkeyNum + 1;//上一层桃子数目flag++;}else {break;}}if(flag == monkeyNum) {//当此式成立时,代表已经计算到第一只猴子break;}lastNum++;//自增}System.out.println("初始桃子数为:" + firstNum);System.out.println("最后一只猴子分得的桃子数为:"+ lastNum);
}`

运行截图:

小结:非常简单的题目也有伤脑筋的地方,要多多练习。不太会写,不足之处,请多多包涵,谢谢!

猴子分桃问题(JAVA实现)相关推荐

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

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

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

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

  3. java猴子分桃_java编写程序五只猴子分海滩上的一堆桃子答案

    下面给大家分享的编程题是和猴子分桃有关的内容,那么这道题目是怎样的呢?这道题目又应该如何来做解答?一起来看看具体的题目内容和答案吧. 首先我们要来看一下问题,下面是具体的题目. 一.题目 现在,在海滩 ...

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

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

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

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

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

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

  7. c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案

    本文实例讲述了C语言实现的猴子分桃问题算法.分享给大家供大家参考,具体如下: 问题: 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份 ...

  8. python猴子分桃子的数学题_小学奥数猴子分桃练习及答案【三篇】

    小学奥数猴子分桃练习及答案[三篇] 导读: 本文 小学奥数猴子分桃练习及答案[三篇] ,仅供参考,如果 觉得很不错,欢迎点评和分享. [篇一] 给猴子们分桃子 , 如果每个猴子分 7 个多出 2 个 ...

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

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

最新文章

  1. 没有JS的前端:体积更小、速度更快!
  2. mysql innodb 从 ibd 文件恢复表数据
  3. Leetcode 217. 存在重复元素 (每日一题 20210913)
  4. MongoDB数据库(了解MongoDB及基础命令,备份数据库)
  5. RabbitMQ 手动签收
  6. java 双等号(==) 与equals方法的使用区别
  7. VirtualBox基础使用
  8. typedef和define的作用域
  9. 强悍的 vim —— 删除空行、删除注释以及加注释解注释
  10. 3D打印策略:检验CIO领导力的试金石
  11. cent os7 安装elasticsearch-7.9.3(伪集群)和kibana-7.9.3
  12. 两台服务器centos7.x 直接文件共享,文件挂载 nfs
  13. 【Spring-IOC】Spring中的数据校验
  14. LitJson的使用
  15. mw150um 驱动程序win10_Intel网卡驱动Win10官方下载_Intel网卡驱动Win10专版64位官方安装版-华军软件园...
  16. cast to pointer from integer of different size [-Wint-to-pointer-cast], cast from ‘void*’ to ‘int’ l
  17. epub.js制作电子书阅读网站
  18. KV存储相关基础知识
  19. C1 驾驶证考试科目二考试心得
  20. iPhone苹果手机尺寸大小

热门文章

  1. 存储文件照片哪个服务器好,照片记录的美好时光,用NAS存储吧
  2. 2018总结----对共享单车的思考
  3. 健身体测微信小程序,新手上路
  4. 聊聊角色扮演探索式测试与肥皂剧模型
  5. golang的一些测试技巧和工具
  6. 什么是MSB、LSB、LSW、MSW,什么是大端、小端,区别是什么?
  7. Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境
  8. C语言_因数、因子_质数(素数)、合数
  9. 鹏程万里------HIM开发中遇到的问题
  10. VR购物兴起,难道百搭的VR技术要全面“入侵”生活了?