A22389. 球弹跳高度的计算
填空题
容易
知识点
题目描述
球弹跳高度的计算
题目描述
一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
输出包含两行,第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。
输入
输入一个整数h,表示球的初始高度。
输出
第1行:到球第10次落地时,一共经过的米数。
第2行:第10次弹跳的高度。
注意:结果可能是实数,结果用double类型保存。
提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("\%g",ANSWER)即可。
输入样例
20输出样例
59.9219
0.0195312参考答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
double h, sum;//h:初始高度 sum:球经过的总距离
cin >> h;
sum = h;//sum:总距离初始值设为h,即第一次下落的距离为h
for(int i = 1; i <= 9; ++i)//i表示第几次弹起
{
h /= 2;//落地后弹跳高度变为原来的一半。运算后h为第i次弹起的高度
sum += 2 * h;//球弹起距离h,下落距离h,经过2h距离后再次落地。运行这句后,此时sum表示第i+1次弹起前小球经过的距离
}
cout << sum << endl << h/2 << endl;//此时sum为第10次弹起前也就是第10次落地时经过的距离,h为第10次下落的高度,第10次弹起的高度应该为h/2
return 0;
}
上一题
下一题