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

  • 相关阅读:
    java面向对象基础
    java重载方法、重写方法
    java数据类型
    Java简介
    随机读写,块读写
    Java基本常识

    循环双向链表
    双向链表(链表)
    循环单链表(链表)
  • 原文地址:https://www.cnblogs.com/yanmk/p/8760856.html
Copyright © 2011-2022 走看看