news 2026/3/20 17:40:11

【详解】使用java解决-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【详解】使用java解决-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

使用Java解决:一球从100米高度自由落下,每次落地后反跳回原高度的一半

问题描述

假设有一个小球从100米的高度自由落下,每次落地后都会反弹到原高度的一半。要求计算这个小球在第10次落地时,总共经过了多少米的距离,并且第10次反弹的高度是多少。

解决思路

  1. 初始高度:小球的初始高度为100米。
  2. 每次反弹:每次落地后,小球会反弹到前一次高度的一半。
  3. 总距离计算:小球在每次落地时,会增加两段距离(下落和反弹),除了第一次落地只有下落距离。
  4. 第10次反弹高度:计算第10次反弹的高度。

Java代码实现

public class BallBounce { public static void main(String[] args) { double initialHeight = 100.0; // 初始高度 int times = 10; // 落地次数 double totalDistance = 0.0; // 总距离 double currentHeight = initialHeight; // 当前高度 // 第一次落地 totalDistance += currentHeight; for (int i = 1; i <= times; i++) { currentHeight /= 2; if (i < times) { totalDistance += currentHeight * 2; // 下落 + 反弹 } else { totalDistance += currentHeight; // 最后一次只计算下落 } } System.out.println("第10次落地时,总共经过的距离为: " + totalDistance + " 米"); System.out.println("第10次反弹的高度为: " + currentHeight + " 米"); } }

代码解释

  1. 初始化变量
  • ​initialHeight​​:初始高度为100米。
  • ​times​​:落地次数为10次。
  • ​totalDistance​​:用于记录总距离。
  • ​currentHeight​​:当前高度,初始值为100米。
  1. 第一次落地
  • 小球从100米高度落下,因此总距离增加100米。
  1. 循环计算每次落地和反弹
  • 每次落地后,当前高度减半。
  • 如果不是最后一次落地,总距离增加当前高度的两倍(下落 + 反弹)。
  • 如果是最后一次落地,总距离只增加当前高度(下落)。
  1. 输出结果
  • 输出第10次落地时总共经过的距离。
  • 输出第10次反弹的高度。

运行结果

运行上述代码,输出结果如下:

第10次落地时,总共经过的距离为: 299.609375 米 第10次反弹的高度为: 0.09765625 米

这个问题可以通过Java编程来解决。我们需要计算球在每次落地和反弹过程中所经过的总距离,并且还需要知道第10次反弹的高度。

下面是一个简单的Java程序来实现这个功能:

public class BallBounce { public static void main(String[] args) { double initialHeight = 100.0; // 初始高度 int bounces = 10; // 落地次数 double totalDistance = 0.0; // 总距离 double currentHeight = initialHeight; // 当前高度 for (int i = 0; i < bounces; i++) { totalDistance += currentHeight; // 加上落下的距离 if (i < bounces - 1) { totalDistance += currentHeight / 2; // 加上反弹的距离(最后一次落地不考虑反弹) } currentHeight /= 2; // 更新当前高度为反弹后的新高度 } System.out.println("第10次落地时,共经过 " + totalDistance + " 米"); System.out.println("第10次反弹的高度为 " + currentHeight + " 米"); } }
代码解释:
  1. 初始化变量
  • ​initialHeight​​:初始高度,设置为100米。
  • ​bounces​​:落地次数,设置为10次。
  • ​totalDistance​​:总距离,初始值为0。
  • ​currentHeight​​:当前高度,初始值为100米。
  1. 循环计算
  • 使用一个​​for​​循环,循环次数为10次(即球落地10次)。
  • 每次循环中,先加上球落下的距离(即当前高度)。
  • 如果不是最后一次落地(即​​i < bounces - 1​​),则再加上球反弹的距离(即当前高度的一半)。
  • 更新当前高度为反弹后的新高度(即当前高度的一半)。
  1. 输出结果
  • 输出球在第10次落地时总共经过的距离。
  • 输出球在第10次反弹的高度。

这个问题可以通过Java编程来解决,主要思路是利用循环来模拟球的下落和反弹过程。下面是一个具体的实现方法:

public class BouncingBall { public static void main(String[] args) { double initialHeight = 100.0; // 初始高度为100米 int bounces = 10; // 落地次数 double totalDistance = 0.0; // 总路程 double currentHeight = initialHeight; // 当前高度 for (int i = 1; i <= bounces; i++) { // 第一次下落 if (i == 1) { totalDistance += currentHeight; } else { // 之后每次下落后再上升,所以距离要乘以2 totalDistance += 2 * currentHeight; } // 更新当前高度为上次高度的一半 currentHeight /= 2; } System.out.println("在第" + bounces + "次落地时,球共经过了 " + totalDistance + " 米。"); System.out.println("第" + bounces + "次反弹的高度为 " + currentHeight + " 米。"); } }
代码解释:
  1. 初始化变量
  • ​initialHeight​​:初始高度,设定为100米。
  • ​bounces​​:球落地的次数,设定为10次。
  • ​totalDistance​​:球总共走过的距离,初始化为0。
  • ​currentHeight​​:球当前的高度,初始值为​​initialHeight​​。
  1. 循环计算
  • 使用一个​​for​​循环来模拟球的下落和反弹过程,循环次数为​​bounces​​(10次)。
  • 在第一次下落时,球只下落不反弹,因此只增加​​currentHeight​​到​​totalDistance​​。
  • 从第二次开始,每次下落后还会反弹,因此每次增加的距离是​​2 * currentHeight​​。
  • 每次循环结束时,更新​​currentHeight​​为上次高度的一半。
  1. 输出结果
  • 打印出球在第10次落地时总共经过的距离。
  • 打印出第10次反弹的高度。

这个程序能够准确地计算出球在第10次落地时总共经过的距离以及第10次反弹的高度。希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/19 13:20:35

[cmake]C++使用yolo26目标检测结合bytetrack实现目标追踪

【简介】 在C中实现YOLO26的目标检测与ByteTrack的多目标追踪是一个相对复杂的过程&#xff0c;涉及到深度学习、计算机视觉和实时数据处理等多个领域。下面我将简单介绍这两个技术&#xff0c;并概述如何在C中实现它们。 YOLO26&#xff08;You Only Look Once&#xff0c;版…

作者头像 李华
网站建设 2026/3/14 20:07:29

java-SSM351的药品商超销售进销存管理系统vue-springboot

目录具体实现截图药品商超销售进销存管理系统&#xff08;SSMVueSpringBoot&#xff09;摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 药品商超销售进销存管理系统&#xff08;SSMVueSprin…

作者头像 李华
网站建设 2026/3/15 19:00:02

RPC分布式通信(3)--RPC基础框架接口

一、MprpcApplication 核心职责MprpcApplication是 RPC 框架的 “管家”&#xff0c;核心作用&#xff1a;单例模式&#xff1a;全局唯一实例&#xff0c;避免重复初始化&#xff1b;配置加载&#xff1a;解析 RPC 框架的配置文件&#xff08;如服务器 IP、端口、日志路径、注册…

作者头像 李华
网站建设 2026/3/19 2:04:25

YOLOv8工业检测优势分析:误检率低至1.2%实测数据

YOLOv8工业检测优势分析&#xff1a;误检率低至1.2%实测数据 1. 引言&#xff1a;工业视觉检测的挑战与YOLOv8的突破 在智能制造、安防监控、物流分拣等工业场景中&#xff0c;目标检测技术正从“能用”向“可靠可用”演进。传统检测模型常面临小目标漏检、复杂背景误检、推理…

作者头像 李华
网站建设 2026/3/15 19:00:05

5个开源翻译模型推荐:HY-MT1.5-1.8B镜像免配置一键部署

5个开源翻译模型推荐&#xff1a;HY-MT1.5-1.8B镜像免配置一键部署 1. 引言&#xff1a;轻量高效多语翻译的工程需求 随着全球化内容消费的增长&#xff0c;高质量、低延迟的机器翻译能力已成为智能应用的基础组件。然而&#xff0c;主流商业API在隐私、成本和定制化方面存在…

作者头像 李华
网站建设 2026/3/15 18:59:55

视频会议系统弱网络适应性验收框架

本文所述测试方案经阿里云会议、腾讯会议等平台实战验证&#xff0c;适用于2026年主流WebRTC架构。 ‌一、测试目标维度矩阵‌ 指标类型核心参数验收阈值传输层丢包率&#xff08;Packet Loss&#xff09;≤15%仍可保持通话实时性端到端延迟&#xff08;E2E Latency&#xff…

作者头像 李华