一、java自由下落的距离计算
1.问题描述
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
2.输入格式
M N
3.输出格式
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
4.样例输入
1000 5
5.样例输出
31.25 2875.00
二、思路
反弹的高度为上一次高度的一半;
第一次反弹经过的路程(不计算最后一次反弹的高度)=第一次下落的高度
第二次反弹经过的路程(不计算最后一次反弹的高度)=第一次下落的高度+第一次反弹的高度+第二次下落的高度
…
二、java源程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
float M = scanner.nextFloat();
int N = scanner.nextInt();
float total = M; //total为经过的路程,初始化为第一次下落的高度
for(int i=1;i<=N;i++){ //i遍历反弹的次数
M/=2;
if(i!=N) total+=M*2;
}
System.out.printf("%.2f",M);
System.out.print(' ');
System.out.printf("%.2f",total);
}
}