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

/**

* 猴子分桃问题

*海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五分,多了一个,

*这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,

*又多了一个,他同样把多的一个扔入海中,拿走了一份,第三第四第五值猴子都是这样做的,

*问海滩上原来最少有多少个桃子,第五只猴子得到多少桃子

*/

public class MonkeyDividePeaches {

public static void main(String[] args) {

div1();

div2();

div3();

}

//第一种方法

public static void div1(){

int peaches=6;//桃子总数

while(true){

peaches+=5;//桃子每次加5个,保证能被5整除,提高执行效率

int temp=peaches;//桃子数的计数器

int t=0;//满足条件次数的计数器

for(int i=1;i<=5;i++){

if((temp-1)%5==0){

temp=(temp-1)*4/5;

t++;

}

else {

break;

}

}

if(t==5)//5次满足条件,程序结束

break;

}

System.out.println(peaches);

}

//第二种方法

public static void div2() {

int n=1;//第五个猴的桃

int m=0;// 分之前的桃

int flag=1;

while(true){

flag=1;

m=5*n+1;

for(int i=5;i>=1;i--){

if(m%(5-1)==0){

m=m/(5-1)*5+1;

flag++; //计算多少次的桃子数量被4整除

}

else

break;

}

if(flag==5) //每次的桃子数量都能被4整除

break;

n++;

}

System.out.println("开始的桃子数至少是:"+m);

System.out.print("此时第五个猴子得到的桃子数是:"+n);

}

//第三种方法

public static void div3(){

int monkey=1;//要分桃的猴子数

int peaches=1;//桃的总数

int peach=1;//每次分桃的总数

//循环进行给每个猴子分桃

while(monkey<=5){

if(peach%5==1&&peach/5!=0){//如果成功分桃

peach=(peach/5)*4;//可分桃的总数为现在的4/5

monkey++;//换下一个猴子

}

else{//如果失败,重新分桃这时可分桃数量加1

peaches++;

peach=peaches;

monkey=1;

}

}

System.out.println("桃的最小总数为:"+peaches);

}

//第四种方法

}

java海滩上有一,Java猴子分桃问题--三种算法相关推荐

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

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

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

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

  3. 猴子分桃问题(JAVA实现)

    猴子分桃问题(JAVA实现) 题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 使用jQuery for Asp.Net 我的开发环境配置
  2. 侧输出流简单应用-打印的完整流程
  3. react动态改变选中不选中_reactjs – 如何避免使用重新选择来计算派生状态时React重新渲染...
  4. matlab语言主要功能,2014年秋季学期《MATLAB语言及应用》课程试题-2
  5. sublime text3 快速生成方法注释
  6. python的copy模块是哪个模块_每周一个 Python 模块 | copy
  7. android支付后声音,支付宝到账声音生成器
  8. “AI四小龙”神话破灭?依图终止IPO,云从大裁员,旷视巨亏不止
  9. 房东房源管理小程序开发功能
  10. 从Paxos到NOPaxos 重新理解分布式共识算法(consensus)
  11. C# winform 魔兽MH全图制作教程(2):创建项目与关键类
  12. 教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享
  13. 刷题笔记之十 (小易的升级之路+找出字符串中第一个只出现一次的字符+洗牌+MP3光标位置)
  14. yarn安装依赖速度太慢的解决办法
  15. 各品牌手机进rec快捷键
  16. 国产开发板各项性能测试--米尔MYD-YT507H开发板
  17. JavaMail API
  18. 分布式论文精读1:MapReduce
  19. 财路网每日原创推送:区块链金融为何广受互联网巨头追捧?
  20. 机器学习入坑姿势之大纲

热门文章

  1. Winxp中加密自己的用户目录
  2. Python3.7模块之re
  3. MongoDB常用操作总结
  4. 学习响应式BootStrap来写融职教育网站,Bootsrtap第十天你的收获
  5. 中以什么开头仅可注释单行_Python从入门到精通第006课--注释与变量
  6. C++多个文本读取问题
  7. pycharm快敏捷键
  8. T4生成多文件时,不生成自己
  9. 计算二叉树叶子节点的数目
  10. 思维题 UVA 10881 Piotr's Ants