1 /*41 【程序 41 猴子分桃】
2 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把
3 多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的
4 一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
5 */
6
7 /*分析
8 * 设共有s个桃子,s满足:
9 * 第一次分:s1=(s-1)%5==0
10 * 第二次 : s2=(s1-1)%5==0
11 * .....
12 * 第五次 s5=(s4-1)%5==0
13 * 判断算法——5次递归:if(!s){s=(s-1)%5;}
14 *从1开始遍历,直到满足条件,得到s
15 * */
16
17
18 package homework;
19
20 public class _41____________ {
21
22 public static void main(String[] args) {
23 //声明一个标记,判断s是否满足条件
24 boolean mark=false;
25 //声明s,从1开始遍历,满足条件后结束遍历
26 int s=0;
27 while (!mark) { //如果不满足,则s++,满足了就不加了
28 s++;
29 mark=isSatisfy(s); //将判断的结果返回给mark
30
31 }
32 if (mark) {
33 System.out.println("共有"+s+"个桃子");
34 }
35
36 }
37
38 private static boolean isSatisfy(int n) {
39 //用for循环判断5次
40 for (int j = 1; j <=5; j++) {
41 if (n%5!=1) { //表示不能刚好分完
42 return false;
43 }else {
44 n=(n-1)/5*4; //下一次分时还剩下的桃子数量
45 }
46 if (j==5) {
47 return true; //5次判断完了且刚刚满足分配条件,返回true
48 }
49 }
50 return false;
51
52 }
53
54 }

java例题_41 利用递归给猴子分桃的更多相关文章

  1. JAVA 基础编程练习题41 【程序 41 猴子分桃】

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

  2. Java50道经典习题-程序41 猴子分桃

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

  3. Java实现第九届蓝桥杯猴子分香蕉

    猴子分香蕉 题目描述 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香蕉忘记在沙滩上离去. 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉. 第2只 ...

  4. ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃

    http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. ...

  5. java例题_22 用递归求阶乘 5!

    1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的 ...

  6. Python: 猴子分桃。海滩上有一堆桃子,五只猴子来分。

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

  7. C++ HOJ 猴子分桃

    [题目描写叙述] 老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的財富--一大堆桃子.老猴子决定把这些桃子分给小猴子. 第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个.它把剩下的一个留给 ...

  8. 猴子分桃—Python

    def f(): for i in range(3120,4000): flag = 1 k=i for j in range(5): if i%5==1: i=(i//5)*4 else: flag ...

  9. java作业利用递归解决问题

    第一题 利用递归求组合数 设计思想 (1)首先根据公式求,利用递归完成阶乘函数的初始化,并且通过调用阶乘,实现公式计算 (2)递推方法,根据杨辉三角的特点,设置二维数组,从上到下依次保存杨辉三角所得数 ...

随机推荐

  1. Typescript & readonly property

    Typescript & readonly property https://www.typescriptlang.org/docs/handbook/classes.html#readonl ...

  2. Android Studio & SDK & JDK & setting path

    Android Studio & SDK & JDK & setting path https://developer.android.com/studio/intro/upd ...

  3. npm published cli package's default install missing the `-g` flag

    npm published cli package's default install missing the -g flag https://npm.community/t/npm-publishe ...

  4. nasm astrlwr_s函数 x86

    xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export ast ...

  5. Datahero inc:区块链方案如何在现有食品溯源系统里实现落地?

    在食品行业,区块链溯源平台的应用,主要是指围绕"从农田到餐桌"的安全管理理念,综合运用区块链技术.大数据技术和二维码技术等前沿技术,具有产品生产企业管理. 产品生产档案 (农药/防 ...

  6. 文件I/O的内核缓冲

    本文转载自文件 I/O 的内核缓冲 导语 从最粗略的角度理解 Linux 文件 I/O 内核缓冲(buffer cache),啰嗦且不严谨.只为了直观理解. 当我们说一个程序读写磁盘上的文件时,通常指 ...

  7. .Net -- NLog日志框架配置与使用

    NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台,NLog可将日志写入多个目标,比如Database.File.Console.Mail.下面介绍下NLog的基本使用方法 ...

  8. 力扣496. 下一个更大元素 I

    原题 1 class Solution: 2 def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[i ...

  9. js和c#小数四舍五入

    <script language="javascript"> document.write("<h1>JS保留两位小数例子</h1>& ...

  10. ant-design-vue中table自定义列

    1. 使用背景 在项目中使用ant-vue的a-table控件过程中,需要显示序号列或者在列中显示图片,超链,按钮等UI信息.经过查询文档customCell和customRender可以实现以上需求 ...