Java练习之求小球走过的路程

目录

描述

输入描述:

输出描述:

示例1

图解

相关代码


描述

一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?

输入描述:

输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)

输出描述:

输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)

示例1

输入:

100 3

输出:

12.500 250.000

图解

相关代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        float h=scanner.nextFloat();
        int n =scanner.nextInt();

        //write your code here......
        float sum = h;
//         sum记录最开始落地的高度
        for(int i = 1;i < n;i++){    //从第一次落地开始所以i取1
            h = h/2;                //后面每落一次地之后相当于高度都要减半
            sum += h*2;             //每次落地距离加上落地后弹起和落地的高度
        }
        h = h/2;                    //因为第n次落地后还没有弹起所有高度还要除以2
        System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", sum));
        //输出格式为:System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", sum));
        

    }
}


版权声明:本文为weixin_54138158原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。