华为OD机试真题B卷 Java 实现【求小球落地5次后所经历的路程和第5次反弹的高度】,附详细解题思路

news/2024/11/22 22:35:06/

在这里插入图片描述

一、题目描述

假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?

数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000 ,且保证是一个整数

二、输入描述

输入起始高度,int型。

三、输出描述

分别输出第5次落地时,共经过多少米以及第5次反弹多高。

注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。

四、解题思路

  1. 读取输入的起始高度 a;
  2. 将起始高度转换为浮点数 d,用于保存下落过程中球的高度;
  3. 初始化变量 sum1 和 sum2 分别表示下落的总路程和弹起的总路程,初始值都为 0;
  4. 使用循环计算下落和弹起的路程:
    • 每次下落,将下落的距离 d 加到 sum1 上,然后将 d 减半;
    • 每次弹起,将弹起的距离 d 加到 sum2 上,然后将 d 减半;
  5. 循环结束后,由于第5次弹起后未再下落,所以需要将最后一次弹起的距离 d 减去;
  6. 输出第5次落地时总共经过的距离,即 sum1 + sum2 - d;
  7. 输出第5次反弹的高度,即 d;

五、Java算法源码

public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextInt()) {int a = in.nextInt();double d = a;//记录下落的路程double sum1 = 0;//记录弹起的路程double sum2 = 0;for(int i = 0; i<5; i++){sum1 += d;d = d/2;sum2 += d;}//第五次之后未弹起,须减掉System.out.println(sum1 + sum2 - d);System.out.println(d);}
}

六、效果展示

在这里插入图片描述


🏆本文收录于,华为OD机试2023(Java)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/105605.html

相关文章

面试高频—TCP/IP十大问题—程序员必备基础素养

目录 导读 TCP/IP十个问题 一、TCP/IP模型 二、数据链路层 三、网络层 四、ping 五、Traceroute 六、TCP/UDP 七、DNS 八、TCP连接的建立与终止 九、TCP流量控制 十、TCP拥塞控制 &#x1f4da; 相关参考资料 导读 本文整理了一些TCP/IP协议簇中需要必知必会的十…

为什么现在定制开发APP的时间越来越长?

最近几年&#xff0c; APP开发的时间越来越长&#xff0c;让很多企业都难以接受。对于不少企业来说&#xff0c;他们需要花很长时间才能完成 APP定制开发&#xff0c;不仅耗费了大量的时间和精力&#xff0c;而且开发出来的产品还不一定能达到他们想要的效果。这让他们很头疼。…

Python3数据分析与挖掘建模(5)数据分类与分析

1. 数据分类 数据分类可以根据不同的度量水平进行分类&#xff0c;其中常见的分类方法包括定类、定序、定距和定比。 &#xff08;1&#xff09;定类&#xff08;Nominal&#xff09;&#xff1a;定类是最基本的数据分类方式&#xff0c;用于对数据进行无序的分类。在定类数据…

快速读懂 C++ 中的 signed、unsigned、long 和 short 修饰符(C++复习向p7)

几种类型支持的修饰符 整型&#xff1a;signed、unsigned、long、short字符型&#xff1a;signed、unsigned双精度型&#xff1a;long 修饰符的含义 signed&#xff1a;标识变量可以存负数&#xff0c;整型默认就是这样 unsigned&#xff1a;相反的&#xff0c;不能存负数&a…

机器学习集成学习——Adaboost分离器算法

系列文章目录 机器学习之SVM分类器介绍——核函数、SVM分类器的使用 机器学习的一些常见算法介绍【线性回归&#xff0c;岭回归&#xff0c;套索回归&#xff0c;弹性网络】 机器学习相关概念思维导图 文章目录 系列文章目录 前言 Adaboost算法的简单介绍 Adaboost算法相…

面试:解决数字精度丢失

理论上用有限的空间来存储无限的小数是不可能保证精确的&#xff0c;但我们可以处理一下得到我们期望的结果 当你拿到 1.4000000000000001 这样的数据要展示时&#xff0c;建议使用 toPrecision 凑整并 parseFloat 转成数字后再显示&#xff0c;如下&#xff1a; parseFloat(…

企业级信息系统开发讲课笔记4.4 Spring Boot加载自定义配置文件

文章目录 零、学习目标一、为什么需要加载自定义配置文件二、使用PropertySource加载自定义配置文件&#xff08;一&#xff09;创建Spring Boot项目&#xff08;二&#xff09;创建自定义配置文件&#xff08;三&#xff09;创建自定义配置类&#xff08;四&#xff09;编写测…

Node.JS学习 | Babel | webpack | ES6

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Node.JS Node.JS能够在服务器端运行JavaScript的开放源代码、跨平台运行环境&#xff1b;Node.js采用Google开发的V8运行代码&#xff0c;使用事件驱动、非阻塞IO和异…