一、具体题目

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天 早上又将剩下的桃子吃掉一半 ,又多吃了一个 。

以后每天早上都吃了前一天剩下的一半零一个

第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃。

二、思路分析(逆向思维)

  • 第10天时的桃子数:1
第10天桃子总数 1个
  • 第9天桃子总数:4

    根据【以后每天早上都吃了前一天剩下的一半零一个。】

    我们可以先从1往上推测数字。

    我们可以做出以下假设:
假设第9天桃子数量为2 2-(2/2+1)= 0 不满足第10天还剩1个的条件
假设第9天桃子数量为3 3-(3/2+1) 除不尽,不满足条件
假设第9天桃子数量为4 4-(4/2+1)= 1 满足第10天还剩一个桃的条件

所以就可以确定第9天桃子总数为4

第9天桃子总数 第9天吃掉的桃子数 第9天剩余的桃子数
4 4/2+1=3 4-3=1

第10天桃子数第9天桃子数关联起来得到下面的式子:

4=1*2+1+1

  • 有了第9天桃子总数就可以求出第8天桃子总数

    根据题目中的条件列一个方程式:每天早上都吃了前一天剩下的一半零一个

    第8天的桃子总数=第8天吃掉的桃子总数+第8天剩余的桃子总数(第9天的桃子总数)
  • 因为第8天剩余的桃子会放到第9天去吃
  • 第8天剩余的桃子总数=第9天的桃子总数

设:第8天有桃子x个: x = (x/2+1)+4    x=10

即第8天有桃子10个

第8天桃子总数 第8天吃掉的桃子数 第8天剩余的桃子数
10 10/2+1=6 10-6=4

第9天桃子数第8天桃子数关联起来得到下面的式子:

10=4*2+1+1

  • 同理可以求出第7天桃子总数:

    第7天的桃子总数=第7天吃掉的桃子总数+第7天剩余的桃子总数(第8天的桃子总数)

    因为第7天剩余的桃子会放到第8天去吃

    第7天剩余的桃子总数=第8天的桃子总数

设:第7天有桃子x个: x = (x/2+1)+10    x=22

即第7天有桃子22个

第7天桃子总数 第7天吃掉的桃子数 第7天剩余的桃子数
22 22/2+1=12 22-12=10

第8天桃子数第7天桃子数关联起来得到下面的式子:

22=10*2+1+1

所以我们可以看出:

  • 第10天桃子数:1
  • 第9天桃子数:1*2+1+1=4
  • 第8天桃子数:4*2+1+1=10
  • 第7天桃子数:10*2+1+1=22

三、代码+结果

代码:

package Exercise;

public class HouZiChiTao {
/*
* 第10天桃子数:1
* 第9天桃子数:1*2+1+1=4
* 第8天桃子数:4*2+1+1=10
* 第7天桃子数:10*2+1+1=22
*/
public static void main(String[] args) {
int m = 1;//第10天剩余的桃子数
for (int i = 9; i > 0; i--) {//采用逆推的思维
m = m * 2 + 1+1;
}
System.out.println(m);
} }

结果:

四、彩蛋

欢迎大家来公号 “小乔的编程内容分享站”

来找小乔玩~

一起学习Java基础+算法~

还有更多资源等你来拿哦~

【视频+图文】Java经典基础练习题(六):猴子吃桃子问题的更多相关文章

  1. 【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出

    目录 一.视频讲解 二.思路分析 总结: 三.代码+详解+结果 四.彩蛋 能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能 ...

  2. Java语言基础(六)

    Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...

  3. Java 多线程基础(六)线程等待与唤醒

    Java 多线程基础(六)线程等待与唤醒 遇到这样一个场景,当某线程里面的逻辑需要等待异步处理结果返回后才能继续执行.或者说想要把一个异步的操作封装成一个同步的过程.这里就用到了线程等待唤醒机制. 一 ...

  4. 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)

    大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...

  5. java并发基础(六)--- 活跃性、性能与可伸缩性

    <java并发编程实战>的第9章主要介绍GUI编程,在实际开发中实在很少见到,所以这一章的笔记暂时先放一放,从第10章开始到第12章是第三部分,也就是活跃性.性能.与测试,这部分的知识偏理 ...

  6. Java Script基础(六) DOM模型

    一.文档对象模型 DOM( Document Object Model)文档对象模型,它提供了访问.动态修改文档的借口,W3C指定了DOM规范,主流浏览器都支持.DOM由3部分组成,分别是CoreDo ...

  7. Java语言基础(六)char成员变量默认初始值 最简单的Java源文件 Java的main()方法

    ①char成员变量的初始值是:'\u0000' ②package用来指定该文件所处的包的名称,必须位于源文件的顶端. import java.util.*; package com.hyy.test; ...

  8. Java经典基础与高级面试36题和答案

    1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实 ...

  9. java语言基础(六)_String类_static_Arrays类_Math类

    String类 1. 使用 java.lang.String类代表字符串.lang包含的包不用特意引用,即默认已经引用了. API当中说:Java 程序中的所有字符串字面值(如 "abc&q ...

随机推荐

  1. ipadmini从9.3.5降级8.4.1并完美越狱

    ipadmini之前是iOS9.3.5实在是卡的用不了,于是打算降级,但是尝试了包括改版本描述等很多方法一直失败.今天突然成功降级8.4.1并且完美越狱,运行流畅了非常多.赶紧发个教程,回馈一下网友. ...

  2. 【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式

    [练习3.20] a.编写一个程序将中缀表达式转换为后缀表达式,该中缀表达式含括号及四则运算. b.把幂操作符添加到你的指令系统中去. c.编写一个程序将后缀表达式转化为中缀表达式. Answer: ...

  3. 启动崩盘!IDEA 2020 无法启动的解决办法|赠送 IDEA 2020 新功能

    今天早上看到 IDEA 可以升级新版本,想着体验一下新功能,点击升级,然后全部项目工程无法打开. 报错信息如下: Cannot execute command No project found to ...

  4. CSS每日学习笔记(0)

    7.29.2019 1. CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解 ...

  5. webService-axis开发jar包

    开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar axiom-dom-1.2.13.jar axiom-impl-1.2.13.jar axis2- ...

  6. python高阶函数&异常处理

    高阶函数 1.什么是高阶函数 在Python中,变量可以指向函数 函数名也是变量 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. ma ...

  7. CF33C Wonderful Randomized Sum 题解

    原题链接 简要题意: 你可以无限次的把该数组的一个前缀和后缀 \(\times -1\),问最终的最大序列和. 这题盲目WA了数次才知道本质 这题89个数据吊打std CF真好啊,发现一个错后面就不测 ...

  8. [树的度数] Christmas Spruce

    Consider a rooted tree. A rooted tree has one special vertex called the root. All edges are directed ...

  9. eclipse-JEE配置Tomcat并发布第一个项目

    一.配置过程 Window--preferences--Server--Runtime Environment, 然后点击add 我下载的是Tomcat7.0,选择你的版本就行了 选择Tomcat的安 ...

  10. display:flex 简单记录

    1.有写了 display:flex:这个就是 采用了 flex布局的 元素 这个元素可以 写 6个属性: flex-direction : row |  column  | row-reverse ...