题解 | #小球走过路程计算#

小球走过路程计算

http://www.nowcoder.com/practice/ddbb7021c0a7452f9044564234616913

题目的主要信息:

  • 一球从hh米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第nn次落地时共经过了多少米?第nn次返弹多高?
  • 结果保留三位小数

具体做法:

我们遍历落地次数,第一次走过了落下高度这么多距离,然后弹起高度降低一半,然后走了弹起的高度这么多距离,完成一次循环,如果nn个循环,累加距离,不断降低高度。需要注意最后一次落地后虽然要计算弹起的高度,我们还要输出它,但是我们走过的距离已经没有它的,我们此时已经是落地nn次了,第n次落地相当于第n-1次弹起

alt

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();
        float dis = 0;
        for(int i = 0; i < n; i++){
            dis += h;  //每次加上落下来的距离
            h /= 2; //弹起距离缩短一半
            if(i == n - 1){
                System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", dis));
            }
            dis += h; //弹上去走的距离
        }
    }
}

复杂度分析:

  • 时间复杂度:O(n)O(n),一次遍历
  • 空间复杂度:O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论
想法和我的一样,但是能把图都做出来,而且还这么清晰的思路确实厉害
点赞 回复 分享
发布于 2023-03-14 14:31 江西

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
嵌入式的小白:简历都没过,说明简历匹配度不行,这个需要你看看投递的岗位描述,看人家需要什么技术,然后针对性的修改
0offer互助地
点赞 评论 收藏
分享
评论
20
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务