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


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

 

思路1: 逆序 原来 第1只 第2只 第3只 第4只 第5只 n n-n/5-1 m-m/5-1 x-x/5-1 使用递归来解决问题

 

public class 第四十一题猴子分桃子 { public static void main(String[] args) { /* * 思路: 逆序 原来 第1只 第2只 第3只 第4只 第5只 n n-n/5-1 m-m/5-1 x-x/5-1 使用递归来解决问题 */
        int sum = 0; for (int i = 60; i < 6100; i++) { int n = i; for (int m = 1; m < 6; m++) { sum += getValue(n, m); } if (sum == n) { System.out.println(i); } } } // 获取第m只猴子拿走的桃数量
    public static double getValue(int d, int m) {// n为总数,m为第1,2,3,4,5只猴
        int result = 0; // 保存结果
         result =  d / 5 + 1; // 第一只
        if (m == 1) { return result; } else { return getValue((d - result), m - 1); } } }

 

思路2: 

设第5只猴子得到a个桃子.分队前有5a+1 第四只得到 (5a+1)/4 分堆前有 (5a+1)/4 + 1 .我想知道为什么 第四子猴子得到
* (5a+1)/4 为什么不是 (5a+1)/5 为什么第四子得到的不是 5a+1
*
* 设第四只猴子拿【暂不说 得】到y个苹果,那么还剩下(除了扔掉的一个)4y个!而 4y=5a+1 所以 y=(5a+1)/4 .即第4只猴子得到
* (5a+1)/4 个苹果.

 

public class 第四十一题猴子分桃子_version2 { public static void main(String[] args) { // 统计次数
        int count, m, j = 0; for (int i = 4; i < 10000; i += 4) { count = 0; m = i; for (int k = 0; k < 5; k++) { j = i / 4 * 5 + 1; i = j; if (j % 4 == 0) { count++; } else 
                    break; } i = m; if (count == 4) { System.out.println("原有桃子" + j + "个"); } } } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份, 第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子? 【JAVA习题二十八】海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? Python: 猴子分桃。海滩上有一堆桃子,五只猴子来分。 猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾, 就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃 前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共 摘下来多少个桃子? 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。 (循环练习题) 五只猴子分桃子 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子? 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 猴子吃桃问题:猴子第一天摘下若干个桃子, 当即吃了一半,还不过瘾,又多吃了一个; 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 * 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 * 1.程序分析:采取逆向思维的方法,从后往前推断。
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM