java海滩上有一,Java猴子分桃问题--三种算法
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五分,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,又多了一个,他同样把多的一个扔入海中,拿走了一份,第三第四第五值猴子都是这样做的,问海滩上原来最少有多少个桃子,第五只猴子得到多少桃子
/**
* 猴子分桃问题
*海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五分,多了一个,
*这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,
*又多了一个,他同样把多的一个扔入海中,拿走了一份,第三第四第五值猴子都是这样做的,
*问海滩上原来最少有多少个桃子,第五只猴子得到多少桃子
*/
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猴子分桃问题--三种算法相关推荐
- java猴子分桃_java编写程序五只猴子分海滩上的一堆桃子答案
下面给大家分享的编程题是和猴子分桃有关的内容,那么这道题目是怎样的呢?这道题目又应该如何来做解答?一起来看看具体的题目内容和答案吧. 首先我们要来看一下问题,下面是具体的题目. 一.题目 现在,在海滩 ...
- java猴子分桃_算法——猴子分桃
想做些有关"算法"的练习题,在网上无意间看到了一道很经典的算法题--猴子分桃,于是百度了一下,才发现这道题的相关文档很多很多,但最多的也就是使用C++或者Java来解决这道题,而自 ...
- 猴子分桃问题(JAVA实现)
猴子分桃问题(JAVA实现) 题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个 ...
- java 5只猴子分桃_通俗易懂、简单粗暴得解决猴子分桃问题
c编程技巧-117个问题解决方案示例 79.2元 包邮 (需用券) 去购买 > 起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一 ...
- java猴子分桃问题_通俗易懂、简单粗暴得解决猴子分桃问题
起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...
- python猴子分桃_猴子分桃 - Ryan in C++ - 博客园
猴子分桃的故事大体有两种描述: 描述 1 :五只猴子分桃.半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只:于是,它吃掉了一个,拿走了一堆.第二只猴子起来一看,只有四堆桃,于是把四堆合在一 ...
- c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案
本文实例讲述了C语言实现的猴子分桃问题算法.分享给大家供大家参考,具体如下: 问题: 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份 ...
- 通俗易懂、简单粗暴地解决各类猴子分桃问题
起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...
- 猴子分桃问题c语言程序设计,猴子分桃问题
维普资讯 http://doc.wendoc.com 第 4期 高中数学教与学 .短文集锦. 猴子分桃问题 张亚军 (吉林省榆树市弓棚一中, 1 3 0 4 0 6 ) 这是一道流传很广的趣味数学问题 ...
最新文章
- 使用jQuery for Asp.Net 我的开发环境配置
- 侧输出流简单应用-打印的完整流程
- react动态改变选中不选中_reactjs – 如何避免使用重新选择来计算派生状态时React重新渲染...
- matlab语言主要功能,2014年秋季学期《MATLAB语言及应用》课程试题-2
- sublime text3 快速生成方法注释
- python的copy模块是哪个模块_每周一个 Python 模块 | copy
- android支付后声音,支付宝到账声音生成器
- “AI四小龙”神话破灭?依图终止IPO,云从大裁员,旷视巨亏不止
- 房东房源管理小程序开发功能
- 从Paxos到NOPaxos 重新理解分布式共识算法(consensus)
- C# winform 魔兽MH全图制作教程(2):创建项目与关键类
- 教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享
- 刷题笔记之十 (小易的升级之路+找出字符串中第一个只出现一次的字符+洗牌+MP3光标位置)
- yarn安装依赖速度太慢的解决办法
- 各品牌手机进rec快捷键
- 国产开发板各项性能测试--米尔MYD-YT507H开发板
- JavaMail API
- 分布式论文精读1:MapReduce
- 财路网每日原创推送:区块链金融为何广受互联网巨头追捧?
- 机器学习入坑姿势之大纲