题解 | #求小球落地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]));
        }
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务