目录
描述
一球从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));
}
}