华为机试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;
}
相关文章
|
6月前
|
Java
leetcode-452:用最少数量的箭引爆气球
leetcode-452:用最少数量的箭引爆气球
61 0
|
3月前
|
JavaScript 前端开发
一个小球从100米落下,每次落下弹起的高度是上一次的一半,问需要几次后高度小于10米?
一个小球从100米落下,每次落下弹起的高度是上一次的一半,问需要几次后高度小于10米?
57 0
|
6月前
|
C++
一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下再反弹,求它在第10次落地时共经过多少米,第10次反弹多高。
这段内容包含两部分:代码示例和两个图片。代码是一个C++程序,主要逻辑是循环10次,每次迭代中更新变量x和y的值。图片似乎显示了代码执行前后的结果,但具体细节无法在摘要中体现。
60 0
|
6月前
56.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
56.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
56 0
|
算法 C++
起点,而非终点——我的创作纪念日
起点,而非终点——我的创作纪念日
115 0
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
66 0
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,在落下,在反弹,求它在第十次落地时共经历了多少米,第十次反弹多高。
一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,在落下,在反弹,求它在第十次落地时共经历了多少米,第十次反弹多高。
|
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最短路
147 0