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行)

  • 相关阅读:
    RPC中阻塞队列的作用
    记用tensorflow-ranking时的bugs
    JDK作泛型比较时为什么把逻辑代码写两遍
    Java 不能声明泛型数组
    QuickSort Hoare vs Lomuto
    Java 对数组扩容
    Java交换两对象的问题
    毕业 失业
    dependencyManagement介绍
    web笔记
  • 原文地址:https://www.cnblogs.com/yanmk/p/8760856.html
Copyright © 2011-2022 走看看