测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题