华为机试HJ38:求小球落地5次后所经历的路程和第5次反弹的高度

简介: 华为机试HJ38:求小球落地5次后所经历的路程和第5次反弹的高度

题目描述:

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

最后的误差判断是小数点6位

输入描述:

输入起始高度,int型

输出描述:

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

示例:

输入:

1

输出:

2.875

0.03125

解题思路:

第一次落地经历的是输入的高度,从第二次开始,相当于进行了前一次的高度,因为反弹高度是0.5倍,但是往返,这样可以得到五次落地总共经历的距离sum;循环从i=1开始,每次循环后temp/2得到的值相当于第i次反弹的高度,比如第一次反弹的高度是0.5m,以此类推;i最大到4,也就是说循环结束后的temp是第4次反弹高度,题目要求第5次反弹高度,所以再除以2即可。

测试代码:

#include <iostream>
using namespace std;
int main()
{
    int heigh;
    while(cin>>heigh)
    {
        double sum=0;
        double temp=static_cast<double>(heigh);
        // 第1次落地
        sum+=temp;
        // 第2-5次落地均是往返
        for(int i=1;i<5;++i)
        {
            sum+=temp;
            // temp/2为第i次的反弹高度,i最多到4
            temp/=2;
        }
        cout<<sum<<endl;
        // 第5次落地后进行第5次反弹,所以temp还要除以2
        cout<<temp/2<<endl;
    }
    return 0;
}
相关文章
|
2月前
|
算法
Leecode第十六题(最接近的三数之和)
这篇文章介绍了LeetCode第16题“最接近的三数之和”的题目要求、解题思路和代码实现,该算法题目要求从给定的整数数组中找出三个数,使它们的和最接近给定的目标值。
52 0
|
7月前
|
C++
一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下再反弹,求它在第10次落地时共经过多少米,第10次反弹多高。
这段内容包含两部分:代码示例和两个图片。代码是一个C++程序,主要逻辑是循环10次,每次迭代中更新变量x和y的值。图片似乎显示了代码执行前后的结果,但具体细节无法在摘要中体现。
72 0
|
7月前
56.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
56.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
61 0
|
7月前
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
56 0
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,在落下,在反弹,求它在第十次落地时共经历了多少米,第十次反弹多高。
一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,在落下,在反弹,求它在第十次落地时共经历了多少米,第十次反弹多高。
|
算法 C++
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
139 0
|
存储
【每日一题Day95】LC1815得到新鲜甜甜圈的最多组数 | 状态压缩dp 记忆化搜索
子问题、哪些操作会影响数据:余下的甜甜圈数量left,以及剩余可以选的元素个数 cnt[x]【dfs函数的两个参数->使用状态压缩至一个int类型变量中】
119 0
【每日一题Day95】LC1815得到新鲜甜甜圈的最多组数 | 状态压缩dp 记忆化搜索
|
C++ Python
2022年5月14日LeetCode双周赛第三题-6068. 毯子覆盖的最多白色砖块数
2022年5月14日LeetCode双周赛第三题-6068. 毯子覆盖的最多白色砖块数
2022年5月14日LeetCode双周赛第三题-6068. 毯子覆盖的最多白色砖块数
【CCCC】L3-018 森森美图 (30分),计算几何+判断三点共线+bfs最短路
【CCCC】L3-018 森森美图 (30分),计算几何+判断三点共线+bfs最短路
151 0