本题来自华为机试HJ38。
描述
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
数据范围:输入的小球初始高度满足 1≤n≤1000 1 \le n \le 1000 \ 1≤n≤1000 ,且保证是一个整数
输入描述:
输入起始高度,int型
输出描述:
分别输出第5次落地时,共经过多少米以及第5次反弹多高。
注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。
简单的模拟题,代码如下:
#include<iostream>
using namespace std;
int main()
{
int height;
cin>>height;
double sum=height,five=height;
for(int i=1;i<=5;i++){
if(i>=2)
sum+=2*five;
five/=2;
}
cout<<sum<<endl<<five;
return 0;
}
结果如下: