自己也特意看了很多有关该题的解题过程,无非由是以下特点:

1.从1挨个遍历

2.递归

3.没有解题思路

因此,从解法上做了一些优化,补充了解题思路,剔除递归,如有更好的解题方法可以留言方便一起学习。

解题思路:

前提条件:每个猴子看到的桃子的个数为整数

解题关键对象:第四个猴子

过程:我们从第四个猴子着手,首先我们要满足第四个猴子拿走自己的一份香蕉后剩余个数要满足第五个猴子扔一个剩余的个数能被5整除,那么第四个猴子拿走香蕉后的香蕉个数的尾数要么是1要么是6,因此我们得出第四个猴子拿走香蕉后剩余的香蕉个必在 1、6、11、16、21、... 中。我们从1最小元素开始遍历挨个往上推出前四个猴子看到的香蕉个数,必须都满足为整数。

描述:

1、6、11、16、21、...使用集合M描述:M={x| x= 5 * j +1 ∧ j ∈ N+},

设第四个猴子拿走自己一份还剩余的香蕉个数所有可能值集合:M'。

M'一定满足

①M'∈M,

②M'任意元素M'i都满足以下五个条件,

第五个猴子拿到的桃子数:(M'i-1)/ 5 > 0;

第四个猴子看到的桃子数N4=M'i÷4x5+1为整数;

第三个猴子看到的桃子数N3=N4÷4x5+1为整数;

第二个猴子看到的桃子树N2 = N3÷4x5+1为整数;

第一个猴子看到的桃子树N1=N2÷4x5+1为整数;

M'即为所有解集合,M'min(M'集合最小元素)即为最优解。

我们需要求出的就是M'min,根据M'min推出第一个猴子看到的桃子树N1。

package com.design;public class MainEnumSet {public static void main(String[] args) {Double temp;k:for (int i = 1; ; i++) {Double m = i * 5D + 1;for (int index = 0; index < 4; index++) {m = m / 4D * 5 + 1;if (isNumeric(String.valueOf(m))) {if(index == 3){temp = m;break k;}continue;}System.out.println("排除掉的数字m:" + (i * 5D + 1));break;}}System.out.println("香蕉个数:" + temp);}public static boolean isNumeric(String str) {String[] strs = str.split("\\.");if(strs.length < 2){return true;}str = strs[1];for (int index =0; index < str.length(); index ++ ) {if (Character.isDigit(str.charAt(index)) && Integer.valueOf(String.valueOf(str.charAt(index))) > 0) {return false;}}return true;}
}

运行结果:

D:\jdk1.8.0_192\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:57298,suspend=y,server=n -javaagent:C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:\jdk1.8.0_192\jre\lib\charsets.jar;D:\jdk1.8.0_192\jre\lib\deploy.jar;D:\jdk1.8.0_192\jre\lib\ext\RXTXcomm.jar;D:\jdk1.8.0_192\jre\lib\ext\access-bridge-64.jar;D:\jdk1.8.0_192\jre\lib\ext\cldrdata.jar;D:\jdk1.8.0_192\jre\lib\ext\dnsns.jar;D:\jdk1.8.0_192\jre\lib\ext\jaccess.jar;D:\jdk1.8.0_192\jre\lib\ext\jfxrt.jar;D:\jdk1.8.0_192\jre\lib\ext\localedata.jar;D:\jdk1.8.0_192\jre\lib\ext\nashorn.jar;D:\jdk1.8.0_192\jre\lib\ext\sunec.jar;D:\jdk1.8.0_192\jre\lib\ext\sunjce_provider.jar;D:\jdk1.8.0_192\jre\lib\ext\sunmscapi.jar;D:\jdk1.8.0_192\jre\lib\ext\sunpkcs11.jar;D:\jdk1.8.0_192\jre\lib\ext\zipfs.jar;D:\jdk1.8.0_192\jre\lib\javaws.jar;D:\jdk1.8.0_192\jre\lib\jce.jar;D:\jdk1.8.0_192\jre\lib\jfr.jar;D:\jdk1.8.0_192\jre\lib\jfxswt.jar;D:\jdk1.8.0_192\jre\lib\jsse.jar;D:\jdk1.8.0_192\jre\lib\management-agent.jar;D:\jdk1.8.0_192\jre\lib\plugin.jar;D:\jdk1.8.0_192\jre\lib\resources.jar;D:\jdk1.8.0_192\jre\lib\rt.jar;D:\guolei\designPattern\out\production\designPattern;D:\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar" com.design.MainEnumSet
Connected to the target VM, address: '127.0.0.1:57298', transport: 'socket'
排除掉的数字m:1.0
排除掉的数字m:6.0
排除掉的数字m:11.0
排除掉的数字m:16.0
排除掉的数字m:21.0
排除掉的数字m:26.0
排除掉的数字m:31.0
排除掉的数字m:36.0
排除掉的数字m:41.0
排除掉的数字m:46.0
排除掉的数字m:51.0
排除掉的数字m:56.0
排除掉的数字m:61.0
排除掉的数字m:66.0
排除掉的数字m:71.0
排除掉的数字m:76.0
排除掉的数字m:81.0
排除掉的数字m:86.0
排除掉的数字m:91.0
排除掉的数字m:96.0
排除掉的数字m:101.0
排除掉的数字m:106.0
排除掉的数字m:111.0
排除掉的数字m:116.0
排除掉的数字m:121.0
排除掉的数字m:126.0
排除掉的数字m:131.0
排除掉的数字m:136.0
排除掉的数字m:141.0
排除掉的数字m:146.0
排除掉的数字m:151.0
排除掉的数字m:156.0
排除掉的数字m:161.0
排除掉的数字m:166.0
排除掉的数字m:171.0
排除掉的数字m:176.0
排除掉的数字m:181.0
排除掉的数字m:186.0
排除掉的数字m:191.0
排除掉的数字m:196.0
排除掉的数字m:201.0
排除掉的数字m:206.0
排除掉的数字m:211.0
排除掉的数字m:216.0
排除掉的数字m:221.0
排除掉的数字m:226.0
排除掉的数字m:231.0
排除掉的数字m:236.0
排除掉的数字m:241.0
排除掉的数字m:246.0
排除掉的数字m:251.0
排除掉的数字m:256.0
排除掉的数字m:261.0
排除掉的数字m:266.0
排除掉的数字m:271.0
排除掉的数字m:276.0
排除掉的数字m:281.0
排除掉的数字m:286.0
排除掉的数字m:291.0
排除掉的数字m:296.0
排除掉的数字m:301.0
排除掉的数字m:306.0
排除掉的数字m:311.0
排除掉的数字m:316.0
排除掉的数字m:321.0
排除掉的数字m:326.0
排除掉的数字m:331.0
排除掉的数字m:336.0
排除掉的数字m:341.0
排除掉的数字m:346.0
排除掉的数字m:351.0
排除掉的数字m:356.0
排除掉的数字m:361.0
排除掉的数字m:366.0
排除掉的数字m:371.0
排除掉的数字m:376.0
排除掉的数字m:381.0
排除掉的数字m:386.0
排除掉的数字m:391.0
排除掉的数字m:396.0
排除掉的数字m:401.0
排除掉的数字m:406.0
排除掉的数字m:411.0
排除掉的数字m:416.0
排除掉的数字m:421.0
排除掉的数字m:426.0
排除掉的数字m:431.0
排除掉的数字m:436.0
排除掉的数字m:441.0
排除掉的数字m:446.0
排除掉的数字m:451.0
排除掉的数字m:456.0
排除掉的数字m:461.0
排除掉的数字m:466.0
排除掉的数字m:471.0
排除掉的数字m:476.0
排除掉的数字m:481.0
排除掉的数字m:486.0
排除掉的数字m:491.0
排除掉的数字m:496.0
排除掉的数字m:501.0
排除掉的数字m:506.0
排除掉的数字m:511.0
排除掉的数字m:516.0
排除掉的数字m:521.0
排除掉的数字m:526.0
排除掉的数字m:531.0
排除掉的数字m:536.0
排除掉的数字m:541.0
排除掉的数字m:546.0
排除掉的数字m:551.0
排除掉的数字m:556.0
排除掉的数字m:561.0
排除掉的数字m:566.0
排除掉的数字m:571.0
排除掉的数字m:576.0
排除掉的数字m:581.0
排除掉的数字m:586.0
排除掉的数字m:591.0
排除掉的数字m:596.0
排除掉的数字m:601.0
排除掉的数字m:606.0
排除掉的数字m:611.0
排除掉的数字m:616.0
排除掉的数字m:621.0
排除掉的数字m:626.0
排除掉的数字m:631.0
排除掉的数字m:636.0
排除掉的数字m:641.0
排除掉的数字m:646.0
排除掉的数字m:651.0
排除掉的数字m:656.0
排除掉的数字m:661.0
排除掉的数字m:666.0
排除掉的数字m:671.0
排除掉的数字m:676.0
排除掉的数字m:681.0
排除掉的数字m:686.0
排除掉的数字m:691.0
排除掉的数字m:696.0
排除掉的数字m:701.0
排除掉的数字m:706.0
排除掉的数字m:711.0
排除掉的数字m:716.0
排除掉的数字m:721.0
排除掉的数字m:726.0
排除掉的数字m:731.0
排除掉的数字m:736.0
排除掉的数字m:741.0
排除掉的数字m:746.0
排除掉的数字m:751.0
排除掉的数字m:756.0
排除掉的数字m:761.0
排除掉的数字m:766.0
排除掉的数字m:771.0
排除掉的数字m:776.0
排除掉的数字m:781.0
排除掉的数字m:786.0
排除掉的数字m:791.0
排除掉的数字m:796.0
排除掉的数字m:801.0
排除掉的数字m:806.0
排除掉的数字m:811.0
排除掉的数字m:816.0
排除掉的数字m:821.0
排除掉的数字m:826.0
排除掉的数字m:831.0
排除掉的数字m:836.0
排除掉的数字m:841.0
排除掉的数字m:846.0
排除掉的数字m:851.0
排除掉的数字m:856.0
排除掉的数字m:861.0
排除掉的数字m:866.0
排除掉的数字m:871.0
排除掉的数字m:876.0
排除掉的数字m:881.0
排除掉的数字m:886.0
排除掉的数字m:891.0
排除掉的数字m:896.0
排除掉的数字m:901.0
排除掉的数字m:906.0
排除掉的数字m:911.0
排除掉的数字m:916.0
排除掉的数字m:921.0
排除掉的数字m:926.0
排除掉的数字m:931.0
排除掉的数字m:936.0
排除掉的数字m:941.0
排除掉的数字m:946.0
排除掉的数字m:951.0
排除掉的数字m:956.0
排除掉的数字m:961.0
排除掉的数字m:966.0
排除掉的数字m:971.0
排除掉的数字m:976.0
排除掉的数字m:981.0
排除掉的数字m:986.0
排除掉的数字m:991.0
排除掉的数字m:996.0
排除掉的数字m:1001.0
排除掉的数字m:1006.0
排除掉的数字m:1011.0
排除掉的数字m:1016.0
排除掉的数字m:1021.0
排除掉的数字m:1026.0
排除掉的数字m:1031.0
排除掉的数字m:1036.0
排除掉的数字m:1041.0
排除掉的数字m:1046.0
排除掉的数字m:1051.0
排除掉的数字m:1056.0
排除掉的数字m:1061.0
排除掉的数字m:1066.0
排除掉的数字m:1071.0
排除掉的数字m:1076.0
排除掉的数字m:1081.0
排除掉的数字m:1086.0
排除掉的数字m:1091.0
排除掉的数字m:1096.0
排除掉的数字m:1101.0
排除掉的数字m:1106.0
排除掉的数字m:1111.0
排除掉的数字m:1116.0
排除掉的数字m:1121.0
排除掉的数字m:1126.0
排除掉的数字m:1131.0
排除掉的数字m:1136.0
排除掉的数字m:1141.0
排除掉的数字m:1146.0
排除掉的数字m:1151.0
排除掉的数字m:1156.0
排除掉的数字m:1161.0
排除掉的数字m:1166.0
排除掉的数字m:1171.0
排除掉的数字m:1176.0
排除掉的数字m:1181.0
排除掉的数字m:1186.0
排除掉的数字m:1191.0
排除掉的数字m:1196.0
排除掉的数字m:1201.0
排除掉的数字m:1206.0
排除掉的数字m:1211.0
排除掉的数字m:1216.0
排除掉的数字m:1221.0
排除掉的数字m:1226.0
排除掉的数字m:1231.0
排除掉的数字m:1236.0
排除掉的数字m:1241.0
排除掉的数字m:1246.0
排除掉的数字m:1251.0
排除掉的数字m:1256.0
排除掉的数字m:1261.0
排除掉的数字m:1266.0
排除掉的数字m:1271.0
香蕉个数:3121.0
Disconnected from the target VM, address: '127.0.0.1:57298', transport: 'socket'Process finished with exit code 0

直接解法(外国的一位数学家给出的解法)

此解法,本人没看太明白,看懂的望留言解释一下,互相学习。

解题大致过程:
假如第一个猴子看到的香蕉个数为-4

那么 (-4-1)/5*4仍然等于-4,

依次类推第五个猴子拿走桃子后剩余的桃子个数仍然为-4,

可得-4是一个不变值。

由于-4是一个特解因此-4 + 5^5仍然是特解所以-4 + 3125 = 3121。

有五只猴子分一堆桃子.第一只猴子最先来,扔了一个后平分成五分,拿走了一份.其他猴子也一样扔了一个,平分成5分,拿走自己的.问:桃子至少有几个?相关推荐

  1. 猴子分桃的题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了 一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分 成五份,又多了一个,

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

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

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

  3. 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份

    package CompileProject; /*  * 38.海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,  * 多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子 ...

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

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

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

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

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

    核心思想就是 num = (num-1)*(4/5),num要连续5次满足这个式子还是是整数,就是最小数量 #include<stdio.h> /*** 猴子分桃子 , 树林里有一堆桃子 ...

  7. 五只猴子分桃。第1只猴子把这堆桃子凭据分为五份, 多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只到第五只猴子都如此分,五轮后,原来桃子总共有多少个

    /*思路:1.根据提议,我们得到的信息有 桃子分配方式 分配的轮数2.把得到的信息关联起来假设最后一轮猴子分完桃子后,他本身得到1个桃子计算得到最后一轮猴子分配时桃子的数量=6每次分配的桃子数量是上一 ...

  8. /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“

    题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 *****************    所谓" ...

  9. 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个

    有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他说是10岁.请问第五个 ...

最新文章

  1. CentOS6 安装并破解Jira 7
  2. pydev-python 链接mysql数据库(mac系统)
  3. 轻松玩转jquery。
  4. ASP.NET中常用的26个优化性能方法
  5. 23/100. Valid Parentheses
  6. sendEmail实现邮件报警
  7. php 分页 url重写 分页问题,解决千古难题,wordpress分页URL问题,wordpress给分页加链接...
  8. centos 6 mysql 5.7.13 编译安装_Centos 6.5系统下编译安装PHP 7.0.13的方法
  9. Spring - 理解BeanPostProcessor
  10. 【多目标优化求解】基于matlab蜻蜓算法求解多目标优化问题【含Matlab源码 477期】
  11. My sql 存储过程实例
  12. dualbootpatcher下载_多系统软件Dual Boot Patcher教程(多图)
  13. np.sum和np.add.reduce
  14. 小程序项目:基于微信小程序的超市购物系统——计算机毕业设计
  15. linux下使用opengL Glad + EGL问题记录
  16. 网络基础--TCP/IP网络基础
  17. tvp5150的iic配置-应用程序实现。
  18. 5G向5.5G演进,变化是什么?
  19. 华为WEB前端全栈成长计划招募
  20. 【ALSA】关于alsa的总结

热门文章

  1. 推荐几个图文编辑的小工具
  2. 网站建设安全:HTTPS协议的重要性及与HTTP的区别
  3. 服务器php环境配置续费,php 服务器环境搭建配置
  4. while 循环、if 条件判断,同心协力打造「模拟“春节集五福”活动」程序
  5. 注册机偷懒写法2、之直接调用源程序的函数
  6. js获取父级html元素,js获取当前元素所有子级元素的(js获取父级元素下面的所有子元素)...
  7. 记录华为OBS文件上传下载多种方式
  8. 图片转base64(前后端)
  9. USB键盘实现——字符串描述符(四)
  10. 基于FDTD的基本流程