C++代码解析12

一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?

假设高度h=10

第一次落地: 10 h

第二次落地:10+5(弹)+5(落) 反弹:5 h+h/2+h/2 h/2

第三次落地:10+5(弹)+5(落)+2.5(弹)+2.5(落) 反弹:2.5 h+h/2+h/2+h/4+h/4 h/4

公式 sum = sum+h(落)+h(弹) h = h/2

#include 
using namespace std;
int main()
{
    int i = 1;
    double h, sum = 0;
    cin >> h;
    while (i <= 10)  //循环停止条件
    {
        sum += h; // 累计下落的米数
        h /= 2; // 弹起的高度
        sum += h; // 累计弹起的米数
        i++;
    }
    cout << sum – h; // 球10次经过的米数-第10次弹起的高度
    cout << endl << h; // 球第10次弹起的高度
    return 0;
}
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章