四球落地总路径问题(2016京东Java研发工程师面试题)
以高度为100米为例:
/** * Created by ${wuyupku} on 2019/3/18 22:50 *题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? * * @author wuyupku * */
public class tan {
public static void main(String[] args) {
double total = 0;
double height = 100;
for (double i = 0; i < 30; i++) {
System.out.print("第" + (i + 1) + "次落下时候高度:" + height + " ");
total = total + height;
height = height / 2;
System.out.println("第" + (i + 1) + "次落下经过距离:" + total);
}
}
}
。。。。。。省去前面的。。。。。。
第25.0次落下时候高度:5.9604644775390625E-6 第25.0次落下经过距离:199.99999403953552
第26.0次落下时候高度:2.9802322387695312E-6 第26.0次落下经过距离:199.99999701976776
第27.0次落下时候高度:1.4901161193847656E-6 第27.0次落下经过距离:199.99999850988388
第28.0次落下时候高度:7.450580596923828E-7 第28.0次落下经过距离:199.99999925494194
第29.0次落下时候高度:3.725290298461914E-7 第29.0次落下经过距离:199.99999962747097
第30.0次落下时候高度:1.862645149230957E-7 第30.0次落下经过距离:199.99999981373549
实际上还得再加上50+25+12.5+6.75+…=100,
所以:取极限为:300
(100+90+80+70)*3 = 1020