一球从某一高度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 条评论) “” |