题解 | #求小球落地5次后所经历的路程和第5次反弹的高度#

求小球落地5次后所经历的路程和第5次反弹的高度

http://www.nowcoder.com/practice/2f6f9339d151410583459847ecc98446

除了第一次小球落地没有往返外,后面的每一次路程都包括小球弹起和小球落地,所以总路程就是从第二次开始反弹的高度全部加起来,再加上第一次落地的高度。
/**
 * HJ38 求小球落地5次后所经历的路程和第5次反弹的高度
 * 描述
 * 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
 * 最后的误差判断是小数点6位
 * 输入描述:
 * 输入起始高度,int型
 * 输出描述:
 * 分别输出第5次落地时,共经过多少米第5次反弹多高
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()){
            int n = in.nextInt();
            // 次数5次
            int c = 5;
            ballLanding(n, c);
        }

    }

    private static void ballLanding(int n, int count) {
        double sum = 0;
        // 除了第一次落下,是最长路程n, 后面每次后反弹到落地都是两倍路程,并且高度减半
        double curr = n;
        while (count > 0){
            // 这里多加了一个n,第一次
            sum += 2 * curr ;
            // 路程减半
            curr = curr / 2.0;
            count--;
        }
        // 输出时减去n就得到了路程
        System.out.println(sum - n);
        System.out.println(curr);
    }

}


全部评论

相关推荐

投递长鑫存储等公司7个岗位
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务