题目描述
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
最后的误差判断是小数点3位
输入描述:
输入起始高度,int型
输出描述:
分别输出第5次落地时,共经过多少米第5次反弹多高
示例
输入
1
输出
2.875
0.03125
题目分析
我刚用自己的 zhu 手,画了一个图,就是上边这张图了。
这个题,其实可以取巧的:有一种解法是,给案例的数据乘以倍数就行。
2.875 * hight
0.03125 * hight
java 代码
import java.util.Scanner;
/**
* Created by Feng on 2020/2/21 15:36
* CurrentProject's name is java8
* 求小球落地5次后所经历的路程和第5次反弹的高度
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNextDouble()){
double hight = input.nextDouble();
// 定义数组,存储每次弹起来的高度
double[] result = new double[5];
result[0] = hight / 2;
for (int i = 1; i < 5; i++) {
result[i] = result[i - 1] / 2;
}
double sum = hight;
for (int i = 0; i < result.length - 1; i++) {
sum += (result[i] * 2);
}
System.out.println(String.format("%.6f",sum));
System.out.println(String.format("%.6f", result[result.length - 1]));
}
}
}