五只猴子分桃,算法&面试
2012-10-29 09:27
393 查看
1.五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;.....其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?
参考答案:先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样:
第一只猴子分完后还剩:(1-1/5)X=(4/5)X;
第二只猴子分完后还剩:(1-1/5)2X;
第三只猴子分完后还剩:(1-1/5)3X;
第四只猴子分完后还剩:(1-1/5)4X;
第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X;
得:a=(1024/3125)X;
要使a为整数,X最小取3125.
减去加上的4个,所以,这堆桃子最少有3121个。
JAVA编程实现:
参考答案:先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样:
第一只猴子分完后还剩:(1-1/5)X=(4/5)X;
第二只猴子分完后还剩:(1-1/5)2X;
第三只猴子分完后还剩:(1-1/5)3X;
第四只猴子分完后还剩:(1-1/5)4X;
第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X;
得:a=(1024/3125)X;
要使a为整数,X最小取3125.
减去加上的4个,所以,这堆桃子最少有3121个。
JAVA编程实现:
public class Tao { public static void main(String[] args) { int monkey=1;//要分桃的猴子数 int peaches=1;//桃的总数 int peach=1;//每次分桃的总数 //循环进行给每个猴子分桃 while(monkey<=5) { //如果成功分桃 if(peach%5==1&&peach/5!=0) { //可分桃的总数为现在的4/5 peach=(peach/5)*4; //换下一个猴子 monkey++; } //如果失败,重新分桃这时可分桃数量加1 else { peaches++; peach=peaches; monkey=1; } } System.out.println("桃的最小总数为:"+peaches); } }编程部分为原创,算法参考链接:/article/1360517.html
相关文章推荐
- Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦
- JAVA答案整理---->微软等公司数据结构、算法面试笔试题(v_JULY_v博主发布)
- [面试算法] 01背包 & 完全背包
- "2个面试华为光网测试的有关算法题",我写的程序!!!
- 【编程题】-C++实现:五只猴子分桃
- 国内互联网公司算法&机器学习岗(阿里星)面试总结
- 【LeetCode-面试算法经典-Java实现】【118-Pascal's Triangle(帕斯卡三角形)】
- 【LeetCode-面试算法经典-Java实现】【118-Pascal's Triangle(帕斯卡三角形)】
- 【LeetCode-面试算法经典-Java实现】【119-Pascal's Triangle II(帕斯卡三角形(杨辉三角)II)】
- 2013年9月第1次面试&算法讲座(主讲人:July & 曹鹏博士)
- 算法1 五只猴子吃桃子
- Python: 猴子分桃。海滩上有一堆桃子,五只猴子来分。
- <仅是自己做笔记。。。系列x>所有系列题目都来自v_JULY_v前辈的:精选微软等公司经典的算法面试100题
- 国内互联网公司算法&机器学习岗(阿里星)面试总结
- 国内互联网公司算法&机器学习岗(阿里星)面试总结
- 算法实验题 猴子分桃问题
- C/C++面试之算法系列--从"反转32 位数"算法题分析面试策略
- 五只猴子分桃问题
- 算法——猴子分桃
- java经典算法-猴子分桃