设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。
实际也是满足等比数列的
double getDistance(double h, double p){
//h表示开始高度,p表示下次弹起的比例
if(h*p < 0.001){
//假设0.001为最小值
return h;
}
return h + h * p + getDistance(h * p, p);//递归函数:下落高度+弹起高度+后续路程
}