首页 > 试题广场 >

小球的距离

[编程题]小球的距离
  • 热度指数:13408 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推直到全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)

给定四个整数A,B,C,D,请返回所求结果。

测试样例:
100,90,80,70
返回:1020
import java.util.*;

public class Balls {
    public int calcDistance(int A, int B, int C, int D) {
        // write code here
        double dist = A + B + C + D;
        double sum = dist;
        while( dist > 0){
            sum += dist;
            dist /= 2;
        }
        // int result = (int)Math.ceil(sum);
        int result = (int)3*(A+B+C+D);
        return result;
    }
}

发表于 2022-01-26 22:34:40 回复(0)
import java.util.*;

public class Balls {
    public static int calcDistance(int A, int B, int C, int D) {
        // write code here
        //对double类型的返回结果 向上取整
        return (int)Math.ceil(oneBallDis(A) + oneBallDis(B) + oneBallDis(C) + oneBallDis(D));
    }
    public static double oneBallDis(int n){
        //使用double类型的变量存储单个小球的运动距离
        double distance = n;
        double temp = n *1.0 / 2;
        while(temp > 0){
            distance += temp * 2;
            temp = temp / 2;
        }
        return distance;
    }
}

发表于 2020-07-30 23:45:08 回复(0)
传说中的一行代码:
return 3*(A+B+C+D);
分析:数学计算
代码如下:
import java.util.*;
public class Balls {
    public int calcDistance(int A, int B, int C, int D) {
        // write code here
        return 3*(A+B+C+D);//实际就这一行代码
    }
}
发表于 2018-08-19 17:53:41 回复(0)
import java.util.*;

public class Balls {
    public int calcDistance(int A, int B, int C, int D) {
        // write code here
        return (A+B+C+D)*3;
    }
}

发表于 2017-05-25 14:30:38 回复(0)
import java.util.*;

public class Balls {
    public int calcDistance(int A, int B, int C, int D) {
        // write code here
        return (int)(Math.round(distance(A)+distance(B)+distance(C)+distance(D)));
    }
    public static double distance(int A){
        double d= A;
        double sum =2*A;
        while(d>=0.01){
            d/=2;
            sum+=d;
        }
        return sum;
    }
}

发表于 2017-03-03 14:37:06 回复(0)