zoukankan      html  css  js  c++  java
  • 【算法题2】小球的距离

    小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)

    给定四个整数A,B,C,D,请返回所求结果。

    测试样例:
    100,90,80,70
    返回:1020
     1 class Balls1:
     2     def calcDistanc(self,a,b,c,d):
     3         return 3*(a+b+c+d)
     4 
     5 
     6 class Balls2:
     7     def calcDistanc(self, a, b, c, d):
     8         x=a+b+c+d #x表示四个球离地面距离之和
     9         sum=0
    10         while x>0:
    11             sum+=x
    12             x=x/2.0
    13         return int(sum)
    14 
    15 
    16 if __name__=="__main__":
    17     print(Balls1().calcDistanc(100, 90, 80, 70))
    18     print(Balls2().calcDistanc(100, 90, 80, 70))

    此题关键在于思路及数学思考,运用极限的思想,其实一个小球,设其原本离地面的距离为N米,若按题目的意思落下直至停止,那么它总计经过的距离为3M米,数学验证即可,所以关键代码就一行(第3行)

  • 相关阅读:
    c traps and pitfalls reading note(1)
    比较好的进程篇总结(转)
    shell学习日志
    IPC--消息队列
    c进程学习日志
    c--socket通信TCP篇
    c语言文件操作总结
    c的面向对象思想记录
    c指针学习小结(参考别人总结的经验)
    vi 学习记录
  • 原文地址:https://www.cnblogs.com/yanmk/p/8760856.html
Copyright © 2011-2022 走看看