开发者社区> 问答> 正文

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

展开
收起
珍宝珠 2019-11-19 15:41:36 10501 0
2 条回答
写回答
取消 提交回答
  • def bounce(num):
        height = 100
        total = 0
        for i in range(num):
            total += height
            height /= 2
        return total, height
    
    
    if __name__ == '__main__':
        t, h = bounce(10)
        print("它在第10次落地时,共经过{}米,第10次反弹高度是{}".format(t, h))
    

    以上实例输出结果为:
    它在第10次落地时,共经过199.8046875米,第10次反弹高度是0.09765625米

    2020-02-03 18:35:11
    赞同 展开评论 打赏
  • #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    tour = []
    height = []
    
    hei = 100.0 # 起始高度
    tim = 10 # 次数
    
    for i in range(1, tim + 1):
        # 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)
        if i == 1:
            tour.append(hei)
        else:
            tour.append(2*hei)
        hei /= 2
        height.append(hei)
    
    print('总高度:tour = {0}'.format(sum(tour)))
    print('第10次反弹高度:height = {0}'.format(height[-1]))
    
    

    以上实例输出结果为:

    总高度:tour = 299.609375
    第10次反弹高度:height = 0.09765625
    
    2019-11-19 15:41:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
[罗兰贝格]详解大变局时代消费者高速增长逻辑:存量博弈,步步为赢 立即下载
触摸时空的力量——千寻位置峰会 立即下载
云端设计,与时间赛跑 立即下载