小球下落问题描述:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
问题的关键有:1.要求得第十次落地时,球走的总路程,即包括前九次的下落和弹起和第十次的下落
2.一次落地包括:下落和弹起,先下落,再弹起。
示意图如图所示:
其中,H为下落高度,H/2为弹起高度,一次的总路程s=H+H/2。
处理方法1:while()循环判断:
double wh = 100;
double sum = 0;
int num = 0;
while(num<9){//为什么要小于9?-因为num从0开始递增,所以要小于9.
//sum为总路程,每次下降的总路程为本次的下落和弹起高度之和加上之前的路程累积。
sum = sum+wh+wh/2;
wh = wh/2;
num++;
}
//sum后面再加一个wh的原因:所求的路程包括第十次下落的次数。
System.out