题目
⼩东和三个朋友⼀起在楼上抛⼩球,他们站在楼房的不同层,假设⼩东站的楼层距离地⾯N⽶,球从他⼿⾥⾃由落下,每次落地后反跳回上次下落⾼度的⼀半,并以此类推知道全部落到地⾯不跳,求4个⼩球⼀共经过了多少⽶?(数字都为整数)
给定四个整数A,B,C,D,请返回所求结果。
测试样例:
100,90,80,70
返回:996
代码
public class FreeBall {
public static void main(String[] args) {
int[] hights = new int[]{100, 90, 80, 70};
int sum = 0;
for (int hight : hights) {
sum += hight;
while (hight > 0) {
sum += hight / 2 * 2;
hight = hight / 2;
}
}
System.out.println(sum);
}
}
思路: 首次落体为人物所在高度, 其余每次先弹起1/2, 然后会下落对应高度, 直到最后上升1m, 下降1m, 停止