描述
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000 ,且保证是一个整数
输入描述:
输入起始高度,int型
输出描述:
分别输出第5次落地时,共经过多少米以及第5次反弹多高。
注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。示例1
输入:
1复制输出:
2.875 0.03125复制
package org.example.medium;
import java.util.Scanner;
public class Hj38 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
String[] results = calculate(n);
for (String result : results) {
System.out.println(result);
}
}
}
private static String[] calculate(int n) {
String[] res = new String[2];
float allWay = 0F; //总路程初始值是n
float jumpWay = 0F; //定义弹跳起来的路程
float nn = Float.parseFloat(String.valueOf(n));
int jump = 0;
float secondWay = 0F;
while (jump < 5) {
jumpWay = nn / 2;
if(jump==4){
allWay+=nn;
break;
}
allWay += nn+ jumpWay;
nn=jumpWay;
jump++;
}
res[0] = String.valueOf(allWay);
res[1] = String.valueOf(jumpWay);
return res;
}
}