题目信息
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
初始高度为int型,最后的误差判断是小数点6位。
题解
如下图,初始高度为height,绿色高度为每次落地的路程,黄色背景为每次反弹的高度。
5次落地的总高度为:height + height/2 + height/2 + height/4 + height/4 + height/8 + height/8 + height/16 + height/16 = 23height/8
5次反弹高度为:height/32
编码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BallFall {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input;
while((input = br.readLine()) != null) {
double startHeight = Integer.parseInt(input);
double sumHeight = 23 * startHeight / 8;
System.out.println(sumHeight);
double reverseFall = startHeight / 32;
System.out.println( reverseFall);
}
}
}