题解 | #求小球落地5次后所经历的路程和第5次反弹的高度#
求小球落地5次后所经历的路程和第5次反弹的高度
http://www.nowcoder.com/practice/2f6f9339d151410583459847ecc98446
这题很简单,就是简单的动态规划
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
float[] dp = new float[6]; //定义每次反弹高度的数组
float[] ans = new float[7]; //定义每次落地后经过的距离
dp[0] = n; //初始化反弹高度为n,即起始高度
ans[0] = 0; //初始化经过距离为0
ans[1] = n; //第一次落地时,经过距离为n
for(int i = 1; i < 6; i++){
dp[i] = dp[i - 1] / 2; //反弹高度的动态规划
ans[i + 1] = ans[i] + 2 * dp[i]; //每次落地后经过的距离的动态规划
}
System.out.println(String.format("%.5f", ans[5]));
System.out.println(String.format("%.5f", dp[5]));
}
}
}