题目描述
小赛和三个小朋友一起玩小球,他们是一种新玩法。他们站在楼房的不同层,假设小赛站的楼层距离地面N米,球从小赛手里自由落下,每次落地后反跳回原高度的一半;再落下,再反跳回原高度的一半。小赛和三个小朋友站在不同的楼层,同时放下手中的小球,当小球全部落到地面不跳时,求4个小球一共经过了多少米?(数字都为整数)
输入
输入4个数字,分别表示四个小球距离地面的高度。所有输入的数字都为整数,范围不能超过整数所能表示的最大值。
样例输入
100 90 80 70
输出
输出为四个小球经过的总长度。
样例输出
996
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int a=s.nextInt();
int b=s.nextInt();
int c=s.nextInt();
int d=s.nextInt();
s.close();
System.out.println(Distance(a)+Distance(b)+Distance(c)+Distance(d));
}
public static int Distance(int n){
int sum=n;
while(n>0){
n/=2;
sum=n*2+sum;
}
return sum;
}
}
输入的4个数可以用while循环输入
Scanner s=new Scanner();
int total=0;
while(s.hasNext()){
int n=s.nextInt();
total+=Distance(n);
}
System.out.println(total);
s.close();